diff --git a/internal/event/init.go b/internal/event/init.go index b617a9300..6d9619b4b 100644 --- a/internal/event/init.go +++ b/internal/event/init.go @@ -1,6 +1,7 @@ package event import ( + "log" "os" "github.com/sirupsen/logrus" @@ -24,6 +25,13 @@ func init() { ReportCaller: false, } + // Default logger shall use Logrus. + log.SetFlags(0) + log.SetOutput(&LogWriter{ + Log: Log, + Level: logrus.DebugLevel, + }) + // Create dummy audit logger. AuditLog = dummy.NewLogger() } diff --git a/internal/event/log_writer.go b/internal/event/log_writer.go new file mode 100644 index 000000000..b56f88904 --- /dev/null +++ b/internal/event/log_writer.go @@ -0,0 +1,24 @@ +package event + +import "github.com/sirupsen/logrus" + +// LogWriter is an output writer wrapper for using Logrus with the standard logger. +type LogWriter struct { + Log Logger + Level logrus.Level +} + +// Write implements io.Writer. +func (w *LogWriter) Write(b []byte) (int, error) { + n := len(b) + + if n > 0 && b[n-1] == '\n' { + b = b[:n-1] + } + + if w.Log != nil { + w.Log.Log(w.Level, string(b)) + } + + return n, nil +} diff --git a/internal/event/log_writer_test.go b/internal/event/log_writer_test.go new file mode 100644 index 000000000..efc4c843f --- /dev/null +++ b/internal/event/log_writer_test.go @@ -0,0 +1,11 @@ +package event + +import ( + "log" + "testing" +) + +func TestLogWriter(t *testing.T) { + l := log.Default() + l.Println("Test 123") +}