我用于logrus
记录在 K8S 上运行的应用程序,我们有 env 变量,我们可以设置log-level
它并在重新启动应用程序时更改它我们的应用程序在 k8s 上使用 docker 容器运行现在我们想要更改运行时的日志级别,即不要重新启动容器并在运行时更改它,这样我们就可以将其从 更改error
为debug
,我认为这是合法的请求,但没有找到任何参考或任何这样做的开源代码,有什么想法吗?
package logs
import (
"fmt"
"os"
"github.com/sirupsen/logrus"
)
const (
AppLogLevel = “APP_LOG_LEVEL"
DefLvl = "info"
)
var Logger *logrus.Logger
func NewLogger() *logrus.Logger {
var level logrus.Level
lvl := getLogLevel()
// In case level doesn't set will not print any message
level = logLevel(lvl)
logger := &logrus.Logger{
Out: os.Stdout,
Level: level,
}
Logger = logger
return Logger
}
// use from env
func getLogLevel() string {
lvl, _ := os.LookupEnv(AppLogLevel)
if lvl != "" {
return lvl
}
return DefLvl
}
func logLevel(lvl string) logrus.Level {
switch lvl {
case "debug":
// Used for tracing
return logrus.DebugLevel
case "info":
return logrus.InfoLevel
case "error":
return logrus.ErrorLevel
case "fatal":
return logrus.FatalLevel
default:
panic(fmt.Sprintf("the specified %s log level is not supported", lvl))
}
}
我知道如何更改日志级别,但我需要一种方法来影响记录器更改级别
炎炎设计
泛舟湖上清波郎朗
拉风的咖菲猫
相关分类