Skip to content
Snippets Groups Projects
main.go 946 B
Newer Older
  • Learn to ignore specific revisions
  • Jonas Leder's avatar
    Jonas Leder committed
    package log
    
    import (
    	"os"
    
    	"github.com/sirupsen/logrus"
    	"gopkg.in/natefinch/lumberjack.v2"
    )
    
    var Log = logrus.New()
    
    func Init() {
    	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
    		}})
    
    	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.SetFormatter(&logrus.TextFormatter{
    		FullTimestamp: true,
    	})
    	Log.Infof("Logger initialized with %s log level", Log.Level)
    }