diff options
Diffstat (limited to 'modules/caddyhttp/caddylog')
-rw-r--r-- | modules/caddyhttp/caddylog/log.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/caddyhttp/caddylog/log.go b/modules/caddyhttp/caddylog/log.go new file mode 100644 index 0000000..5bbab2a --- /dev/null +++ b/modules/caddyhttp/caddylog/log.go @@ -0,0 +1,37 @@ +package caddylog + +import ( + "log" + "net/http" + "time" + + "bitbucket.org/lightcodelabs/caddy2" + "bitbucket.org/lightcodelabs/caddy2/modules/caddyhttp" +) + +func init() { + caddy2.RegisterModule(caddy2.Module{ + Name: "http.middleware.log", + New: func() (interface{}, error) { return &Log{}, nil }, + }) +} + +// Log implements a simple logging middleware. +type Log struct { + Filename string +} + +func (l *Log) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error { + start := time.Now() + + if err := next.ServeHTTP(w, r); err != nil { + return err + } + + log.Println("latency:", time.Now().Sub(start)) + + return nil +} + +// Interface guard +var _ caddyhttp.MiddlewareHandler = &Log{} |