diff --git a/middleware/errors/errors.go b/middleware/errors/errors.go index ce9a7cd8..8f1e04b4 100644 --- a/middleware/errors/errors.go +++ b/middleware/errors/errors.go @@ -9,6 +9,7 @@ import ( "os" "runtime" "strings" + "time" "github.com/mholt/caddy/middleware" ) @@ -27,7 +28,7 @@ func (h ErrorHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, er status, err := h.Next.ServeHTTP(w, r) if err != nil { - h.Log.Printf("[ERROR %d %s] %v", status, r.URL.Path, err) + h.Log.Printf("%s [ERROR %d %s] %v", time.Now().Format(timeFormat), status, r.URL.Path, err) } if status >= 400 { @@ -107,8 +108,9 @@ func (h ErrorHandler) recovery(w http.ResponseWriter, r *http.Request) { } // Currently we don't use the function name, as file:line is more conventional - h.Log.Printf("[PANIC %s] %s:%d - %v", r.URL.String(), file, line, rec) + h.Log.Printf("%s [PANIC %s] %s:%d - %v", time.Now().Format(timeFormat), r.URL.String(), file, line, rec) h.errorPage(w, http.StatusInternalServerError) } const DefaultLogFilename = "error.log" +const timeFormat = "02/Jan/2006:15:04:05 -0700" diff --git a/middleware/errors/errors_test.go b/middleware/errors/errors_test.go index 66319f02..7f975bc9 100644 --- a/middleware/errors/errors_test.go +++ b/middleware/errors/errors_test.go @@ -9,6 +9,7 @@ import ( "net/http/httptest" "os" "path/filepath" + "strings" "testing" "github.com/mholt/caddy/middleware" @@ -109,7 +110,7 @@ func TestErrors(t *testing.T) { t.Errorf("Test %d: Expected body %q, but got %q", i, test.expectedBody, body) } - if log := buf.String(); log != test.expectedLog { + if log := buf.String(); !strings.Contains(log, test.expectedLog) { t.Errorf("Test %d: Expected log %q, but got %q", i, test.expectedLog, log) }