禁用 Spring 启动应用程序 运行 的系统日志作为 Linux init.d 服务
Disable system logs for Spring Boot app running as Linux init.d service
我在 docker 容器上有一个 Spring 引导应用程序 运行 作为 init.d 服务。我按照 Spring Boot Unix/Linux Services 指南进行了设置。
由于应用程序作为 守护进程服务 启动,操作系统会在 /var/log/ 下创建日志文件目录并在其中记录应用程序日志。问题在于,由于应用程序有大量日志记录,因此文件的大小会迅速增加。此外,我配置了一个 logback 来管理应用程序日志,因此,我不需要默认的系统日志记录。
我尝试了 customizing the startup script 但我只设法更改了默认值(LOG_FILENAME 和 LOG_FOLDER), 而不是删除它们。
所以我的问题是:有没有办法可以禁用特定 init.d 服务的系统日志?如果是,如何?
一个解决方案是创建与应用程序 .jar 文件同名的 .conf 文件,并将它们放在同一目录中.例如:
/home/
application.jar
application.conf
现在 .jar 旁边有 .conf 文件,打开它并写入
LOG_FOLDER=/dev
LOG_FILENAME=null
如 here 所述,/dev/null 将丢弃此处写入的所有内容,但会 return 成功。
这种方法的缺点是更改 .jar 文件名或目录将需要分别更改 .conf 文件。
我在 docker 容器上有一个 Spring 引导应用程序 运行 作为 init.d 服务。我按照 Spring Boot Unix/Linux Services 指南进行了设置。
由于应用程序作为 守护进程服务 启动,操作系统会在 /var/log/ 下创建日志文件目录并在其中记录应用程序日志。问题在于,由于应用程序有大量日志记录,因此文件的大小会迅速增加。此外,我配置了一个 logback 来管理应用程序日志,因此,我不需要默认的系统日志记录。
我尝试了 customizing the startup script 但我只设法更改了默认值(LOG_FILENAME 和 LOG_FOLDER), 而不是删除它们。
所以我的问题是:有没有办法可以禁用特定 init.d 服务的系统日志?如果是,如何?
一个解决方案是创建与应用程序 .jar 文件同名的 .conf 文件,并将它们放在同一目录中.例如:
/home/
application.jar
application.conf
现在 .jar 旁边有 .conf 文件,打开它并写入
LOG_FOLDER=/dev
LOG_FILENAME=null
如 here 所述,/dev/null 将丢弃此处写入的所有内容,但会 return 成功。
这种方法的缺点是更改 .jar 文件名或目录将需要分别更改 .conf 文件。