使用相同日志文件在同一台机器上的两个Tomcat实例

时间:2017-03-16 13:58:26

标签: tomcat log4j

我最近遇到了一个问题,我的日志文件没有像我们在log4j配置中定义的那样滚动。我发现罪魁祸首是我有两个运行相同应用程序的Tomcat实例,它们都拥有相同的日志文件,所以没有人可以因为另一个而将其翻过来。

但是,我仍然想使用相同的日志文件。我使用两个实例进行负载平衡,每个实例都有一个日志文件会很烦人。

我有什么方法可以做到这一点?或者我注定要有多个日志文件?

1 个答案:

答案 0 :(得分:1)

建议对多个应用程序使用相同的日志文件。因为,

  • 读取日志文件很难。
  • 会影响效果

但是,您可以通过使用logback中的“prudent”标志来实现此目的。

<appender name="FILE_PRUDENT" class="ch.qos.logback.core.FileAppender">
    <file>logs/test.log</file>
    <prudent>true</prudent>
</appender>

来自官方文档,

  

在谨慎模式下,FileAppender将安全地写入指定的文件,   即使存在运行的其他 FileAppender实例   不同的 JVM,可能在不同的主机上运行。默认   谨慎模式的值是假的。