| package logging |
| |
| import "os" |
| |
| func Example() { |
| // This call is for testing purposes and will set the time to unix epoch. |
| InitForTesting(DEBUG) |
| |
| var log = MustGetLogger("example") |
| |
| // For demo purposes, create two backend for os.Stdout. |
| // |
| // os.Stderr should most likely be used in the real world but then the |
| // "Output:" check in this example would not work. |
| backend1 := NewLogBackend(os.Stdout, "", 0) |
| backend2 := NewLogBackend(os.Stdout, "", 0) |
| |
| // For messages written to backend2 we want to add some additional |
| // information to the output, including the used log level and the name of |
| // the function. |
| var format = MustStringFormatter( |
| `%{time:15:04:05.000} %{shortfunc} %{level:.1s} %{message}`, |
| ) |
| backend2Formatter := NewBackendFormatter(backend2, format) |
| |
| // Only errors and more severe messages should be sent to backend2 |
| backend2Leveled := AddModuleLevel(backend2Formatter) |
| backend2Leveled.SetLevel(ERROR, "") |
| |
| // Set the backends to be used and the default level. |
| SetBackend(backend1, backend2Leveled) |
| |
| log.Debugf("debug %s", "arg") |
| log.Error("error") |
| |
| // Output: |
| // debug arg |
| // error |
| // 00:00:00.000 Example E error |
| } |