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) } }