aboutsummaryrefslogtreecommitdiff
path: root/middleware/roller.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/roller.go')
-rw-r--r--middleware/roller.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/middleware/roller.go b/middleware/roller.go
new file mode 100644
index 000000000..995cabf91
--- /dev/null
+++ b/middleware/roller.go
@@ -0,0 +1,27 @@
+package middleware
+
+import (
+ "io"
+
+ "gopkg.in/natefinch/lumberjack.v2"
+)
+
+// LogRoller implements a middleware that provides a rolling logger.
+type LogRoller struct {
+ Filename string
+ MaxSize int
+ MaxAge int
+ MaxBackups int
+ LocalTime bool
+}
+
+// GetLogWriter returns an io.Writer that writes to a rolling logger.
+func (l LogRoller) GetLogWriter() io.Writer {
+ return &lumberjack.Logger{
+ Filename: l.Filename,
+ MaxSize: l.MaxSize,
+ MaxAge: l.MaxAge,
+ MaxBackups: l.MaxBackups,
+ LocalTime: l.LocalTime,
+ }
+}