Customization of the original library will continue from here to make it leaner and more suited for general use in MimirTech projects.
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
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
|
|
}
|