summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/caddylog/log.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2019-03-31 20:41:29 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2019-03-31 20:41:29 -0600
commit6621406fa8b44826477ba7cbe2ff6c5462048f8e (patch)
treee06d9dcf413839ea4a3bbd78a783b56b3ba577f6 /modules/caddyhttp/caddylog/log.go
parent27ff6aeccb99995880a86ee482dd90c1e5c85d85 (diff)
Very basic middleware and route matching functionality
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{}