@@ -23,42 +23,12 @@ import (
2323 "github.com/prometheus/client_golang/prometheus"
2424 "github.com/prometheus/common/version"
2525 "github.com/thanos-io/thanos/pkg/extkingpin"
26+ "github.com/thanos-io/thanos/pkg/logging"
2627 "github.com/thanos-io/thanos/pkg/tracing/client"
2728 "go.uber.org/automaxprocs/maxprocs"
2829 "gopkg.in/alecthomas/kingpin.v2"
2930)
3031
31- const (
32- logFormatLogfmt = "logfmt"
33- logFormatJson = "json"
34- )
35-
36- func setupLogger (logLevel , logFormat , debugName string ) log.Logger {
37- var lvl level.Option
38- switch logLevel {
39- case "error" :
40- lvl = level .AllowError ()
41- case "warn" :
42- lvl = level .AllowWarn ()
43- case "info" :
44- lvl = level .AllowInfo ()
45- case "debug" :
46- lvl = level .AllowDebug ()
47- default :
48- panic ("unexpected log level" )
49- }
50- logger := log .NewLogfmtLogger (log .NewSyncWriter (os .Stderr ))
51- if logFormat == logFormatJson {
52- logger = log .NewJSONLogger (log .NewSyncWriter (os .Stderr ))
53- }
54- logger = level .NewFilter (logger , lvl )
55-
56- if debugName != "" {
57- logger = log .With (logger , "name" , debugName )
58- }
59- return log .With (logger , "ts" , log .DefaultTimestampUTC , "caller" , log .DefaultCaller )
60- }
61-
6232func main () {
6333 if os .Getenv ("DEBUG" ) != "" {
6434 runtime .SetMutexProfileFraction (10 )
@@ -70,7 +40,7 @@ func main() {
7040 logLevel := app .Flag ("log.level" , "Log filtering level." ).
7141 Default ("info" ).Enum ("error" , "warn" , "info" , "debug" )
7242 logFormat := app .Flag ("log.format" , "Log format to use. Possible options: logfmt or json." ).
73- Default (logFormatLogfmt ).Enum (logFormatLogfmt , logFormatJson )
43+ Default (logging . LogFormatLogfmt ).Enum (logging . LogFormatLogfmt , logging . LogFormatJSON )
7444 tracingConfig := extkingpin .RegisterCommonTracingFlags (app )
7545
7646 registerSidecar (app )
@@ -83,7 +53,14 @@ func main() {
8353 registerQueryFrontend (app )
8454
8555 cmd , setup := app .Parse ()
86- logger := setupLogger (* logLevel , * logFormat , * debugName )
56+ logger := logging .NewLogger (* logFormat , * debugName )
57+ logger , err := logging .WithLogLevel (logger , * logLevel )
58+ if err != nil {
59+ // This log line intentionally does not call the error level
60+ // explicitly, as the log level configuration failed.
61+ logger .Log ("level" , "error" , "err" , err )
62+ os .Exit (1 )
63+ }
8764
8865 // Running in container with limits but with empty/wrong value of GOMAXPROCS env var could lead to throttling by cpu
8966 // maxprocs will automate adjustment by using cgroups info about cpu limit if it set as value for runtime.GOMAXPROCS.
0 commit comments