Skip to content

Commit 1d7bbb1

Browse files
authored
Merge pull request #4 from googlecloudrobotics/ongyerth/add-cmdlines-for-loglevel
Add a way to configure the loglevel
2 parents 2efd642 + 1888844 commit 1d7bbb1

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

multiwriter.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,41 @@
1515
package ilog
1616

1717
import (
18+
"flag"
1819
"fmt"
1920
"io"
2021
"log/slog"
2122
"os"
23+
"strings"
2224
)
2325

26+
var (
27+
level slog.Level = slog.LevelInfo
28+
)
29+
30+
func logLevelFromString(str string) (slog.Level, error) {
31+
switch str {
32+
case "debug":
33+
return slog.LevelDebug, nil
34+
case "info":
35+
return slog.LevelInfo, nil
36+
case "warn", "warning":
37+
return slog.LevelWarn, nil
38+
case "error":
39+
return slog.LevelError, nil
40+
default:
41+
return slog.LevelInfo, fmt.Errorf("unknown log level %s", str)
42+
}
43+
}
44+
45+
func SetupFlags(fs *flag.FlagSet) {
46+
fs.Func("log-level", "Sets the log level. Allowed values are: debug, info, warn, error", func(str string) error {
47+
var err error
48+
level, err = logLevelFromString(strings.ToLower(str))
49+
return err
50+
})
51+
}
52+
2453
type multiCloser struct {
2554
closer []io.Closer
2655
}
@@ -55,7 +84,7 @@ func Setup(fs ...string) (io.Closer, error) {
5584
mc.closer = append(mc.closer, w)
5685
writer = append(writer, w)
5786
}
58-
nh := NewLogHandler(slog.LevelInfo, io.MultiWriter(writer...))
87+
nh := NewLogHandler(level, io.MultiWriter(writer...))
5988
slog.SetDefault(slog.New(nh))
6089
return &mc, nil
6190
}

0 commit comments

Comments
 (0)