From 9f3d7534eaf236c2cd3c1d46b822f7042f3c6278 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Thu, 15 Apr 2021 10:48:59 -0700 Subject: [PATCH] logging: enable file/line info if --debug is set This helps a lot to find out where the errors come from. Before: > level=warning msg="lstat /sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/test_hello: no such file or directory" After: > level=warning msg="lstat /sys/fs/cgroup/user.slice/user-1000.slice/user@1000.service/test_hello: no such file or directory" func=github.com/opencontainers/runc/libcontainer.destroy file="github.com/opencontainers/runc/libcontainer/state_linux.go:44" Presumably this comes with an overhead, but I guess no one is using --debug by default anyway. Signed-off-by: Kir Kolyshkin --- libcontainer/logs/logs.go | 2 ++ main.go | 1 + 2 files changed, 3 insertions(+) diff --git a/libcontainer/logs/logs.go b/libcontainer/logs/logs.go index b114a5f50a5..27b96846632 100644 --- a/libcontainer/logs/logs.go +++ b/libcontainer/logs/logs.go @@ -24,6 +24,7 @@ type Config struct { LogFormat string LogFilePath string LogPipeFd int + LogCaller bool } func ForwardLogs(logPipe io.ReadCloser) chan error { @@ -77,6 +78,7 @@ func ConfigureLogging(config Config) error { } logrus.SetLevel(config.LogLevel) + logrus.SetReportCaller(config.LogCaller) // XXX: while 0 is a valid fd (usually stdin), here we assume // that we never deliberately set LogPipeFd to 0. diff --git a/main.go b/main.go index 2b54970930e..328ea30c77a 100644 --- a/main.go +++ b/main.go @@ -190,6 +190,7 @@ func createLogConfig(context *cli.Context) logs.Config { LogLevel: logrus.InfoLevel, LogFilePath: logFilePath, LogFormat: context.GlobalString("log-format"), + LogCaller: context.GlobalBool("debug"), } if context.GlobalBool("debug") { config.LogLevel = logrus.DebugLevel