From c0270a5c675385b80ec2c1e3050c772355af1ffa Mon Sep 17 00:00:00 2001 From: Toby Date: Tue, 7 Jul 2020 18:38:18 -0700 Subject: [PATCH] Add log level & format environment variables --- README.md | 8 ++++++++ README.zh.md | 8 ++++++++ cmd/main.go | 20 ++++++++++++++++---- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bd58416..d219674 100644 --- a/README.md +++ b/README.md @@ -154,3 +154,11 @@ To prevent firewalls from potentially detecting & blocking the protocol, a simpl | Max receive window size per connection | recv_window_conn | -recv-window-conn | | Max receive window size | recv_window | -recv-window | | Obfuscation key | obfs | -obfs | + +## Logs + +By default, the program outputs DEBUG level, text format logs via stdout. + +To change the logging level, set `LOGGING_LEVEL` environment variable, which supports `panic`, `fatal`, `error`, `warn`, `info`, ` debug`, `trace` + +To print JSON instead, set `LOGGING_FORMATTER` to `json` diff --git a/README.zh.md b/README.zh.md index b0af1e6..d360ba5 100644 --- a/README.zh.md +++ b/README.zh.md @@ -152,3 +152,11 @@ shady_hacker smokeweed420 | 单连接最大接收窗口大小 | recv_window_conn | -recv-window-conn | | 总最大接收窗口大小 | recv_window | -recv-window | | 混淆密钥 | obfs | -obfs | + +## 日志 + +程序默认在 stdout 输出 DEBUG 级别,文字格式的日志。 + +如果需要修改日志级别可以使用 `LOGGING_LEVEL` 环境变量,支持 `panic`, `fatal`, `error`, `warn`, `info`, `debug`, `trace` + +如果需要输出 JSON 可以把 `LOGGING_FORMATTER` 设置为 `json` \ No newline at end of file diff --git a/cmd/main.go b/cmd/main.go index c9dd2fe..2a13d51 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -23,10 +23,22 @@ var modeMap = map[string]func(args []string){ func init() { logrus.SetOutput(os.Stdout) - logrus.SetLevel(logrus.DebugLevel) - logrus.SetFormatter(&logrus.TextFormatter{ - ForceColors: true, - }) + + lvl, err := logrus.ParseLevel(os.Getenv("LOGGING_LEVEL")) + if err == nil { + logrus.SetLevel(lvl) + } else { + logrus.SetLevel(logrus.DebugLevel) + } + + fmtter := os.Getenv("LOGGING_FORMATTER") + if strings.ToLower(fmtter) == "json" { + logrus.SetFormatter(&logrus.JSONFormatter{}) + } else { + logrus.SetFormatter(&logrus.TextFormatter{ + ForceColors: true, + }) + } } func main() {