我最近遇到了一个问题,我的日志文件没有像我的 log4j 配置中定义的那样滚动。我发现罪魁祸首是我有两个运行相同应用程序的 Tomcat 实例,它们都拥有相同的日志文件,所以没有一个可以因为另一个而将其滚动。
不过,我还是想使用同一个日志文件。我使用两个实例进行负载平衡,每个实例都有一个日志文件会很烦人。
有什么办法可以做到这一点吗?还是我注定要拥有多个日志文件?
最佳答案
我不建议为多个应用程序使用相同日志文件。因为,
- 阅读日志文件会很困难。
- 它会影响性能。
但是,您可以通过使用“prudent”来实现此目的' 来自 logback 的标志如下。
<appender name="FILE_PRUDENT" class="ch.qos.logback.core.FileAppender">
<file>logs/test.log</file>
<prudent>true</prudent>
</appender>
来自官方文档,
In prudent mode, FileAppender will safely write to the specified file, even in the presence of other FileAppender instances running in different JVMs, potentially running on different hosts. The default value for prudent mode is false.
关于tomcat - 同一台机器上的两个 Tomcat 实例使用相同的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836175/