如何关闭所有 tomcat 日志轮换

How to turn off all tomcat log rotation

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

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

日志似乎是由 logging.properties 文件配置的,但我找不到该文件的 'turn rotation off' 选项。谁能帮忙?我正在使用 Tomcat 8.5

The logs seems to be configured by the logging.properties file, but I can't find a 'turn rotation off' option for this file

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

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

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

The maximum size of the file, in bytes. If this is 0, there is no limit. The default is 1000000 (which is 1 MB). Logs larger than 1MB roll over to the next log file

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

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

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