package main import ( "os" "mimirtech.net/gitea/GoUtilities/logger" ) var log = logger.MustGetLogger("example") // Example format string. Everything except the message has a custom color // which is dependent on the log level. Many fields have a custom output // formatting too, eg. the time returns the hour down to the milli second. var format = logger.MustStringFormatter( `%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}`, ) // Password is just an example type implementing the Redactor interface. Any // time this is logged, the Redacted() function will be called. type Password string func (p Password) Redacted() interface{} { return logger.Redact(string(p)) } func main() { // For demo purposes, create two backend for os.Stderr. backend1 := logger.NewLogBackend(os.Stderr, "", 0) backend2 := logger.NewLogBackend(os.Stderr, "", 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. backend2Formatter := logger.NewBackendFormatter(backend2, format) // Only errors and more severe messages should be sent to backend1 backend1Leveled := logger.AddModuleLevel(backend1) backend1Leveled.SetLevel(logger.ERROR, "") // Set the backends to be used. logger.SetBackend(backend1Leveled, backend2Formatter) log.Debugf("debug %s", Password("secret")) log.Info("info") log.Notice("notice") log.Warning("warning") log.Error("err") log.Critical("crit") }