禁用作为 Linux init.d 服务运行的 Spring Boot 应用程序的系统日志

时间:2021-05-07 12:24:50

标签: java linux spring-boot logging init.d

我有一个 Spring Boot 应用程序作为 init.d 服务在 docker 容器上运行。我按照 Spring Boot Unix/Linux Services 指南进行了设置。

由于应用程序是作为守护程序服务启动的,操作系统会在/var/log/目录下创建日志文件并将应用程序日志记录在那里。问题在于,由于应用程序有大量日志记录,文件的大小会迅速增加。此外,我配置了一个 logback 来管理应用程序日志,因此,我不需要默认的系统日志记录。

我尝试了 customizing the startup script,但我只能更改默认值(LOG_FILENAMELOG_FOLDER),而不是删除它们。

所以我的问题是:有没有办法可以禁用特定 init.d 服务的系统日志?如果是,如何?

1 个答案:

答案 0 :(得分:0)

一种解决方案是创建与应用程序.jar 文件同名的.conf 文件并将它们放在同一目录中。例如:

/home/
      application.jar
      application.conf

现在你在 .jar 旁边有 .conf 文件,打开它并写入

LOG_FOLDER=/dev
LOG_FILENAME=null

here 所述,/dev/null 将丢弃写入的所有内容,但会返回成功。

这种方法的缺点是更改 .jar 文件名或目录将需要分别更改 .conf 文件。