使用 spring boot logback 重复日志条目

Sel*_* Ok 1 spring-boot

在我们的项目中,我们遇到一个奇怪的问题,即日志文件中存在重复的日志条目。

  • 我们有多个附加程序,但只有一个记录器。
  • 如果使用 java -jar 在本地计算机上启动 spring boot 应用程序,则问题无法重现。
  • 仅当应用程序作为服务启动时才会出现此问题。

我该如何解决这个问题。

Sel*_* Ok 6

仅当配置了文件附加程序并且 Spring Boot 应用程序使用 /etc/init.d/ 符号链接启动时,才会出现此问题。

spring boot的默认启动脚本将所有控制台日志重定向到配置的日志文件中。因此,logback 记录器和启动脚本都写入同一个文件中,因此我们在日志文件中看到重复的条目。

使用systemctl(或设置LOG_FILE或LOG_FOLDER环境变量)将解决这个问题。

如果您无法切换到 systemd,您可以设置环境变量,以便将所有 stdout&stderr 消息重定向到 /dev/null:

export LOG_FOLDER=/dev
export LOG_FILENAME=null
Run Code Online (Sandbox Code Playgroud)