diff --git a/.github/workflows/execd-test.yml b/.github/workflows/execd-test.yml index e3004429..1be8dcb9 100644 --- a/.github/workflows/execd-test.yml +++ b/.github/workflows/execd-test.yml @@ -99,4 +99,7 @@ jobs: python3 tests/smoke_api.py - name: Show logs if: always() - run: cat components/execd/execd.log + run: | + set -x + cat components/execd/startup.log || true + cat components/execd/execd.log || true diff --git a/components/execd/README.md b/components/execd/README.md index b3068a4e..dce1fd73 100644 --- a/components/execd/README.md +++ b/components/execd/README.md @@ -250,6 +250,8 @@ logs.Error("message") // error logs.Debug("message") // debug ``` +- Env: `EXECD_LOG_FILE` writes execd logs to the given file path; when unset, logs are sent to stdout. + Log levels (0-7): - 0: Emergency diff --git a/components/execd/README_zh.md b/components/execd/README_zh.md index b915d96a..35c3e4aa 100644 --- a/components/execd/README_zh.md +++ b/components/execd/README_zh.md @@ -249,6 +249,8 @@ logs.Error("message") // 错误条件 logs.Debug("message") // 调试级别消息 ``` +- 环境变量:`EXECD_LOG_FILE` 指定日志输出文件;未设置时日志输出到标准输出(stdout)。 + 日志级别(0-7): - 0:紧急 diff --git a/components/execd/pkg/log/log.go b/components/execd/pkg/log/log.go index 7fdba2e0..ec3a49da 100644 --- a/components/execd/pkg/log/log.go +++ b/components/execd/pkg/log/log.go @@ -16,11 +16,14 @@ package log import ( "fmt" + "os" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) +const logFileEnvKey = "EXECD_LOG_FILE" + var ( atomicLevel = zap.NewAtomicLevelAt(zap.InfoLevel) base *zap.Logger @@ -30,6 +33,17 @@ var ( func init() { cfg := zap.NewProductionConfig() cfg.Level = atomicLevel + + logFile := os.Getenv(logFileEnvKey) + if logFile != "" { + cfg.OutputPaths = []string{logFile} + cfg.ErrorOutputPaths = []string{logFile} + } else { + // outputs log to stdout pipe by default + cfg.OutputPaths = []string{"stdout"} + cfg.ErrorOutputPaths = []string{"stdout"} + } + logger, err := cfg.Build() if err != nil { panic(fmt.Sprintf("failed to init logger: %v", err)) diff --git a/components/execd/tests/smoke.sh b/components/execd/tests/smoke.sh index 84d3dff0..f473c364 100755 --- a/components/execd/tests/smoke.sh +++ b/components/execd/tests/smoke.sh @@ -20,4 +20,5 @@ source tests/jupyter.sh install_jupyter export EXECD_API_GRACE_SHUTDOWN=500ms -./bin/execd -jupyter-host=http://127.0.0.1:${JUPYTER_PORT} --jupyter-token=${JUPYTER_TOKEN} --log-level=7 >execd.log 2>&1 & +export EXECD_LOG_FILE=execd.log +./bin/execd -jupyter-host=http://127.0.0.1:${JUPYTER_PORT} --jupyter-token=${JUPYTER_TOKEN} --log-level=7 >startup.log 2>&1 &