Files

46 lines
960 B
Go

package logging
import (
"io"
"os"
"github.com/sirupsen/logrus"
)
var Log = logrus.New()
func init() {
Log.SetLevel(logrus.InfoLevel)
Log.SetFormatter(&logrus.TextFormatter{})
}
func SetupLogging(verboseLevel int, logFilePath string) {
switch verboseLevel {
case 1:
Log.SetLevel(logrus.DebugLevel)
case 2:
Log.SetLevel(logrus.TraceLevel)
default:
if verboseLevel >= 3 {
Log.SetLevel(logrus.TraceLevel)
}
}
if logFilePath != "" {
logFile, err := os.OpenFile(logFilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
Log.Warnf("Failed to open log file %s: %v. Continuing without file logging.", logFilePath, err)
return
}
if verboseLevel > 0 {
multiWriter := io.MultiWriter(os.Stdout, logFile)
Log.SetOutput(multiWriter)
Log.Debugf("Verbose logging enabled with file output (level: %d)", verboseLevel)
} else {
Log.SetOutput(logFile)
}
Log.Infof("Logging to file: %s", logFilePath)
}
}