【发布时间】:2017-03-16 13:58:25
【问题描述】:
我最近遇到了一个问题,即我的日志文件没有像我的 log4j 配置中定义的那样滚动。我发现罪魁祸首是我有两个 Tomcat 实例运行同一个应用程序,它们都拥有相同的日志文件,因此没有一个实例可以因为另一个而将其翻转。
但是,我仍然想使用相同的日志文件。我使用两个实例进行负载平衡,每个实例都有一个日志文件会很烦人。
有什么办法可以做到吗?还是我注定要拥有多个日志文件?
【问题讨论】:
我最近遇到了一个问题,即我的日志文件没有像我的 log4j 配置中定义的那样滚动。我发现罪魁祸首是我有两个 Tomcat 实例运行同一个应用程序,它们都拥有相同的日志文件,因此没有一个实例可以因为另一个而将其翻转。
但是,我仍然想使用相同的日志文件。我使用两个实例进行负载平衡,每个实例都有一个日志文件会很烦人。
有什么办法可以做到吗?还是我注定要拥有多个日志文件?
【问题讨论】:
我不建议对多个应用程序使用相同日志文件。因为,
但是,您可以通过使用 logback 中的“prudent”标志来实现这一点,如下所示。
<appender name="FILE_PRUDENT" class="ch.qos.logback.core.FileAppender">
<file>logs/test.log</file>
<prudent>true</prudent>
</appender>
来自官方文档,
在谨慎模式下,FileAppender 会安全地写入指定文件, 即使存在其他 FileAppender 实例正在运行 不同 JVM,可能在不同 主机上运行。默认 谨慎模式的值为 false。
【讨论】: