actual request logger middleware
instead of log calls in every handler
This commit is contained in:
parent
108ba4d8c2
commit
bedf6cb8e9
|
@ -11,9 +11,12 @@ import (
|
|||
"git.burning.moe/celediel/burning.moe/internal/render"
|
||||
)
|
||||
|
||||
// App wide config data and such
|
||||
var app config.AppConfig
|
||||
|
||||
func main() {
|
||||
// Initialise app and config
|
||||
app := config.Initialise()
|
||||
app = config.Initialise()
|
||||
|
||||
// Initialise handlers and renderer
|
||||
handlers.Initialise(&app)
|
||||
|
|
|
@ -8,5 +8,11 @@ import (
|
|||
|
||||
// Middleware is a slice of Middleware (aka func(n http.Handler) http.Handler {})
|
||||
var Middleware []func(next http.Handler) http.Handler = []func(next http.Handler) http.Handler{
|
||||
func(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
app.Logger.Info("REQUEST", "url", r.URL, "ip", r.RemoteAddr, "useragent", r.UserAgent())
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
},
|
||||
middleware.Recoverer,
|
||||
}
|
||||
|
|
|
@ -36,6 +36,8 @@ type ConfigDatabase struct {
|
|||
// Initialises the app wide AppConfig, loads values from environment, and set up the Logger
|
||||
func Initialise() AppConfig {
|
||||
app := *defaults
|
||||
|
||||
// Setup logger
|
||||
app.Logger = log.NewWithOptions(os.Stderr, log.Options{
|
||||
ReportTimestamp: true,
|
||||
TimeFormat: time.TimeOnly,
|
||||
|
|
|
@ -44,8 +44,6 @@ func Initialise(a *config.AppConfig) {
|
|||
|
||||
// HomeHandler handles /, generating data from Handlers
|
||||
func HomeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
app.Logger.Info("Got request for homepage")
|
||||
|
||||
page := "home.page.tmpl"
|
||||
d := models.TemplateData{}
|
||||
|
||||
|
@ -80,7 +78,6 @@ func HomeHandler(w http.ResponseWriter, r *http.Request) {
|
|||
// makeBasicHandler returns a simple handler that renders a template from `name`.page.tmpl
|
||||
func makeBasicHandler(name string) func(w http.ResponseWriter, r *http.Request) {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
app.Logger.Infof("Got request for %s page", name)
|
||||
pageName := name + ".page.tmpl"
|
||||
render.RenderTemplate(w, pageName)
|
||||
}
|
||||
|
@ -95,7 +92,6 @@ func makeLinksHandler(name string) func(w http.ResponseWriter, r *http.Request)
|
|||
app.Logger.Error(fmt.Sprintf("couldn't get %s from cache", page), "err", err)
|
||||
}
|
||||
|
||||
app.Logger.Infof("Got request for %s links page", name)
|
||||
data, err := td.LoadTemplateData(name)
|
||||
if err != nil {
|
||||
app.Logger.Fatal("couldn't load template data for "+name, "err", err)
|
||||
|
|
Loading…
Reference in a new issue