]>
Commit | Line | Data |
---|---|---|
bae9f6d2 JC |
1 | # logutils |
2 | ||
3 | logutils is a Go package that augments the standard library "log" package | |
4 | to make logging a bit more modern, without fragmenting the Go ecosystem | |
5 | with new logging packages. | |
6 | ||
7 | ## The simplest thing that could possibly work | |
8 | ||
9 | Presumably your application already uses the default `log` package. To switch, you'll want your code to look like the following: | |
10 | ||
11 | ```go | |
12 | package main | |
13 | ||
14 | import ( | |
15 | "log" | |
16 | "os" | |
17 | ||
18 | "github.com/hashicorp/logutils" | |
19 | ) | |
20 | ||
21 | func main() { | |
22 | filter := &logutils.LevelFilter{ | |
23 | Levels: []logutils.LogLevel{"DEBUG", "WARN", "ERROR"}, | |
24 | MinLevel: logutils.LogLevel("WARN"), | |
25 | Writer: os.Stderr, | |
26 | } | |
27 | log.SetOutput(filter) | |
28 | ||
29 | log.Print("[DEBUG] Debugging") // this will not print | |
30 | log.Print("[WARN] Warning") // this will | |
31 | log.Print("[ERROR] Erring") // and so will this | |
32 | log.Print("Message I haven't updated") // and so will this | |
33 | } | |
34 | ``` | |
35 | ||
36 | This logs to standard error exactly like go's standard logger. Any log messages you haven't converted to have a level will continue to print as before. |