Jho*_*n D 5 logging go docker kubernetes
我使用它logrus来记录在 K8S 上运行的应用程序\n我们有 env 变量,我们可以设置log-level它并在重新启动应用程序时更改它\n我们的应用程序正在 k8s 上使用 docker 容器运行\n现在我们想要更改日志级别运行时,即不要\xe2\x80\x99t重新启动容器并更改它\n当它\xe2\x80\x99s运行时,我们可以将其从 更改为error,debug我认为这是合法的请求,但没有\xe2\x80\ x99t 找到任何参考或任何这样做的开源代码,有什么想法吗?
package logs\n\nimport (\n "fmt"\n "os"\n\n "github.com/sirupsen/logrus"\n)\n\nconst (\n AppLogLevel = \xe2\x80\x9cAPP_LOG_LEVEL"\n DefLvl = "info"\n)\n\n\nvar Logger *logrus.Logger\n\n\nfunc NewLogger() *logrus.Logger {\n\n var level logrus.Level\n lvl := getLogLevel()\n // In case level doesn\'t set will not print any message\n level = logLevel(lvl)\n logger := &logrus.Logger{\n Out: os.Stdout,\n Level: level,\n }\n Logger = logger\n return Logger\n}\n\n// use from env\nfunc getLogLevel() string {\n lvl, _ := os.LookupEnv(AppLogLevel)\n if lvl != "" {\n return lvl\n }\n return DefLvl\n}\n\nfunc logLevel(lvl string) logrus.Level {\n\n switch lvl {\n case "debug":\n // Used for tracing\n return logrus.DebugLevel\n case "info":\n return logrus.InfoLevel\n case "error":\n return logrus.ErrorLevel\n case "fatal":\n return logrus.FatalLevel\n default:\n panic(fmt.Sprintf("the specified %s log level is not supported", lvl))\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我知道如何更改日志级别,但我需要一种方法来影响记录器更改级别
\nSha*_*vit -1
您可以运行该命令kubectl exec -it <container_name> bash并使用容器内的命令行来更改环境变量。您可以通过运行命令export LOG_LEVEL=debug或export LOG_LEVEL=error在容器内来完成。
| 归档时间: |
|
| 查看次数: |
21978 次 |
| 最近记录: |