code: func NewWithLogger(out io.Writer) *Macaron {
  	m := &Macaron{
  		Injector: inject.New(),
  		action:   func() {},
  		Router:   NewRouter(),
  		logger:   log.New(out, "[Macaron] ", 0),
  	}
  	m.Router.m = m
  	m.Map(m.logger)
  	m.Map(defaultReturnHandler())
  	m.NotFound(http.NotFound)
  	m.InternalServerError(func(rw http.ResponseWriter, err error) {
  		http.Error(rw, err.Error(), 500)
  	})
  	return m
  }
docs: // NewWithLogger creates a bare bones Macaron instance.
  // Use this method if you want to have full control over the middleware that is used.
  // You can specify logger output writer with this function.