summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/caddylog/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/caddyhttp/caddylog/log.go')
-rw-r--r--modules/caddyhttp/caddylog/log.go37
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{}