package log import ( "os" "github.com/sirupsen/logrus" "gopkg.in/natefinch/lumberjack.v2" ) var Log = logrus.New() func Init() { if os.Getenv("LOG_FOLDER") != "" { Log.Info("Initializing file logger") Log.SetOutput(os.Stdout) Log.AddHook(&LumberjackHook{ Logger: &lumberjack.Logger{ Filename: os.Getenv("LOG_FOLDER") + "/application.log", MaxSize: 10, // Max size in MB MaxBackups: 3, // Max number of old log files to keep MaxAge: 28, // Max age in days to keep a log file Compress: true, // Compress old log files }}) Log.SetFormatter(&logrus.TextFormatter{ FullTimestamp: true, }) } if os.Getenv("LOG_LEVEL") == "" { Log.SetLevel(logrus.InfoLevel) } else { switch os.Getenv("LOG_LEVEL") { case "ERROR": Log.SetLevel(logrus.ErrorLevel) case "WARN": Log.SetLevel(logrus.WarnLevel) case "INFO": Log.SetLevel(logrus.InfoLevel) case "DEBUG": Log.SetLevel(logrus.DebugLevel) } } Log.Infof("Logger initialized with %s log level", Log.Level) }