Skip to content
Snippets Groups Projects
main.go 1.01 KiB
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() {
    
    Jonas Leder's avatar
    Jonas Leder committed
    	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,
    		})
    	}
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    	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)
    }