go-logging
go-logging copied to clipboard
Set Logging Level
What does SetLevel() do? If I set the logging level to logging.INFO, will only the message written to logging.Info() be written? Sorry for the remedial question.
Thank you
Yes, you need to pass the constant (logging.DEBUG / logging.INFO) and the name of your logger instance. Only messages written to the logger at the specified allowed level will then be output, others will be discarded.
e.g. use logging.SetLevel(logging.INFO, "myLog") logger.Info("my message") > is output logger.debug("my message") !output
Dosent work
logging.SetLevel(logging.INFO,"")
backend := logging.NewLogBackend(os.Stderr, "", 0)
backend2Formatter := logging.NewBackendFormatter(backend, format)
logging.SetLevel(logging.INFO, "myLog")
if strings.ToUpper(*LOG_LEVEL) == "ERROR" {
logging.SetLevel(logging.ERROR, "myLog")
} else if strings.ToUpper(*LOG_LEVEL) == "INFO" {
logging.SetLevel(logging.INFO, log.Module)
} else if strings.ToUpper(*LOG_LEVEL) == "DEBUG" {
logging.SetLevel(logging.DEBUG, "myLog")
} else if strings.ToUpper(*LOG_LEVEL) == "CRITICAL" {
logging.SetLevel(logging.CRITICAL, "myLog")
} else if strings.ToUpper(*LOG_LEVEL) == "NOTICE" {
logging.SetLevel(logging.NOTICE, "myLog")
} else if strings.ToUpper(*LOG_LEVEL) == "WARNING" {
logging.SetLevel(logging.WARNING, "myLog")
} else {
logging.SetLevel(logging.INFO, log.Module)
}
logging.SetBackend(backend2Formatter)
log.Info(logging.GetLevel(log.Module))
Try this
stdout := logging.NewLogBackend(os.Stdout, "", 0)
format := logging.MustStringFormatter(`%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.5s} %{id:03x}%{color:reset} %{message}`)
logging.SetFormatter(format)
levelBackend := logging.AddModuleLevel(stdout)
switch strings.ToUpper(*LOG_LEVEL) {
case "CRITICAL":
levelBackend.SetLevel(logging.CRITICAL, "")
case "ERROR":
levelBackend.SetLevel(logging.ERROR, "")
case "WARN":
levelBackend.SetLevel(logging.WARNING, "")
case "NOTICE":
levelBackend.SetLevel(logging.NOTICE, "")
case "DEBUG":
levelBackend.SetLevel(logging.DEBUG, "")
default:
levelBackend.SetLevel(logging.INFO, "")
}
logging.SetBackend(levelBackend)
@utkudarilmaz Thanx!
Hi @utkudarilmaz! can i change the log level after the log was initialized? i see that SetLevel() doesn't have any locking mechanism. is this the right way to do it? Logging.SetLevel()? or init the log again? Thanks.