【问题标题】:How to turn off all tomcat log rotation如何关闭所有tomcat日志轮换
【发布时间】:2018-06-30 03:40:29
【问题描述】:

我想使用 logrotate 在我的服务器上管理日志轮换,但是 Tomcat 执行它自己的日志轮换,它与 logrotate 的交互很糟糕,我找不到关闭它的方法。我的 Tomcat 实例目前产生 5 种类型的日志:

  • catalina.2018-01-17.log
  • mysite_access.2018-01-17.log
  • localhost.2018-01-17.log
  • host-manager.2018-01-17.log
  • manager.2018-01-17.log

经过一番谷歌搜索后,我发现我可以通过将rotatable="false" 添加到 server.xml 中适当的<Value> 元素中来禁用“mysite”日志的轮换,但其他日志都没有相应的<Value> 元素。

日志似乎是由 logging.properties 文件配置的,但我找不到该文件的“关闭轮换”选项。任何人都可以帮忙吗?我正在使用 Tomcat 8.5

【问题讨论】:

标签: tomcat logging tomcat8


【解决方案1】:

日志似乎是由 logging.properties 文件配置的,但我找不到此文件的“关闭轮换”选项

您可以尝试使用不同的日志处理程序并对其进行配置以避免轮换

您的属性文件可能包含此配置(如果您没有更改默认设置)

1catalina.org.apache.juli.AsyncFileHandler.level = DEBUG
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

您可以将其更改为 java.util.logging.FileHandler 并禁用旋转的大小限制

1catalina.java.util.logging.FileHandler.level = DEBUG
1catalina.java.util.logging.FileHandler.pattern = ${catalina.base}/logs/catalina.%g.log 

# set below limit to 0 !!
1catalina.java.util.logging.FileHandler.limit = 0
1catalina.java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

来自the docs

java.util.logging.FileHandler.limit

文件的最大大小,以字节为单位。如果为 0,则没有限制。默认值为 1000000(即 1 MB)。大于 1MB 的日志会滚动到下一个日志文件

由于没有限制,所以永远不会发生文件轮换。

【讨论】:

    【解决方案2】:

    org.apache.juli.AsyncFileHandler 中有一个选项可以关闭rotatable 功能。您可以直接添加以下参数来禁用日志轮换:

    1catalina.org.apache.juli.AsyncFileHandler.rotatable = false
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2022-08-14
      • 2017-09-25
      • 2010-12-02
      • 1970-01-01
      相关资源
      最近更新 更多