一尘不染

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

tomcat

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

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

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


阅读 270

收藏
2020-06-16

共1个答案

一尘不染

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

  • 很难 读取 日志文件。
  • 这将影响 性能

但是,您可以通过以下方式从登录中使用“
prudent ”标志来实现此目的。

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

根据官方文档,

在谨慎模式下, 即使存在其他 FileAppender实例运行在 不同的 JVM(可能在 不同的 主机上运行) 的情况
下,FileAppender也会安全地写入指定的文件 。谨慎模式的默认值为false。

2020-06-16