add configurable log file path

This commit is contained in:
m5r
2026-01-18 00:20:29 +01:00
parent f585fb393b
commit aac894ae6f
2 changed files with 26 additions and 10 deletions

View File

@@ -24,6 +24,8 @@ var command = &cobra.Command{
viper.SetEnvPrefix("XIP") viper.SetEnvPrefix("XIP")
viper.AutomaticEnv() viper.AutomaticEnv()
utils.InitLogger(viper.GetString("log-file"))
email := viper.GetString("Email") email := viper.GetString("Email")
_, err := mail.ParseAddress(email) _, err := mail.ParseAddress(email)
if err != nil { if err != nil {
@@ -84,6 +86,9 @@ var command = &cobra.Command{
} }
func Execute() { func Execute() {
command.Flags().String("log-file", utils.DefaultLogFile, "Path to log file")
viper.BindPFlag("log-file", command.Flags().Lookup("log-file"))
command.Flags().Uint("dns-port", 53, "Port for the DNS server") command.Flags().Uint("dns-port", 53, "Port for the DNS server")
viper.BindPFlag("dns-port", command.Flags().Lookup("dns-port")) viper.BindPFlag("dns-port", command.Flags().Lookup("dns-port"))

View File

@@ -8,14 +8,25 @@ import (
"gopkg.in/natefinch/lumberjack.v2" "gopkg.in/natefinch/lumberjack.v2"
) )
var consoleWriter = zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339} const DefaultLogFile = "/var/log/local-ip.sh.log"
var fileWriter = &lumberjack.Logger{
Filename: "/var/log/local-ip.sh.log",
MaxBackups: 3,
MaxSize: 1, // megabytes
MaxAge: 1, // days
Compress: true, // disabled by default
}
var multi = zerolog.MultiLevelWriter(consoleWriter, fileWriter)
var Logger = zerolog.New(multi).With().Timestamp().Logger() var consoleWriter = zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339}
var Logger = zerolog.New(consoleWriter).With().Timestamp().Logger()
func InitLogger(logFile string) {
if logFile == "" {
logFile = DefaultLogFile
}
fileWriter := &lumberjack.Logger{
Filename: logFile,
MaxBackups: 3,
MaxSize: 1,
MaxAge: 1,
Compress: true,
}
multi := zerolog.MultiLevelWriter(consoleWriter, fileWriter)
Logger = zerolog.New(multi).With().Timestamp().Logger()
}