【问题标题】:Two instances of Tomcat on the same machine using the same log file同一台机器上的两个 Tomcat 实例使用相同的日志文件
【发布时间】:2017-03-16 13:58:25
【问题描述】:

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

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

有什么办法可以做到吗?还是我注定要拥有多个日志文件?

【问题讨论】:

    标签: tomcat log4j


    【解决方案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,可能在不同 主机上运行。默认 谨慎模式的值为 false。

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 2014-09-20
      • 2019-11-30
      • 2020-10-01
      • 2016-11-05
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多