diff --git a/cmd/main.go b/cmd/main.go index bce108e7..f7413b92 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -31,6 +31,7 @@ func main() { kingpin.Flag("timezone", "Timezone assigned to Diun.").Envar("TZ").Default("UTC").StringVar(&flags.Timezone) kingpin.Flag("log-level", "Set log level.").Envar("LOG_LEVEL").Default("info").StringVar(&flags.LogLevel) kingpin.Flag("log-json", "Enable JSON logging output.").Envar("LOG_JSON").Default("false").BoolVar(&flags.LogJson) + kingpin.Flag("log-caller", "Enable to add file:line of the caller.").Envar("LOG_CALLER").Default("false").BoolVar(&flags.LogCaller) kingpin.Flag("run-startup", "Run on startup.").Envar("RUN_STARTUP").Default("false").BoolVar(&flags.RunStartup) kingpin.Flag("docker", "Enable Docker mode.").Envar("DOCKER").Default("false").BoolVar(&flags.Docker) kingpin.UsageTemplate(kingpin.CompactUsageTemplate).Version(version).Author("CrazyMax") diff --git a/internal/logging/logger.go b/internal/logging/logger.go index 4470d8ab..bb4a6a74 100644 --- a/internal/logging/logger.go +++ b/internal/logging/logger.go @@ -28,7 +28,12 @@ func Configure(fl *model.Flags, location *time.Location) { w = os.Stdout } - log.Logger = zerolog.New(w).With().Caller().Timestamp().Logger() + ctx := zerolog.New(w).With().Timestamp() + if fl.LogCaller { + ctx = ctx.Caller() + } + + log.Logger = ctx.Logger() logLevel, err := zerolog.ParseLevel(fl.LogLevel) if err != nil { diff --git a/internal/model/flags.go b/internal/model/flags.go index 496301ab..3bbe04c5 100644 --- a/internal/model/flags.go +++ b/internal/model/flags.go @@ -7,6 +7,7 @@ type Flags struct { Timezone string LogLevel string LogJson bool + LogCaller bool RunStartup bool Docker bool }