diff --git a/main.go b/main.go index 8a89ac1..7e259c4 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "flag" "os" "os/signal" @@ -148,12 +149,23 @@ func Bot() { defer log.Warn("Graceful shutdown complete") } +type OutputSplitter struct{} + +func (splitter *OutputSplitter) Write(p []byte) (n int, err error) { + if bytes.Contains(p, []byte("level=error")) { + return os.Stderr.Write(p) + } + return os.Stdout.Write(p) +} + func main() { log.SetFormatter(&log.TextFormatter{ TimestampFormat: "2006-01-02 15:04:05", FullTimestamp: true, }) + log.SetOutput(&OutputSplitter{}) + // Load environment variables if err := godotenv.Load(); err != nil { log.WithField("error", err).Warn("Failed to load .env file")