如何关闭所有tomcat日志轮换

时间:2018-01-21 10:26:58

标签: tomcat logging tomcat8

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

  • catalina.2018-01-17.log
  • mysite_access.2018-01-17.log
  • localhost.2018-01-17.log
  • 主机manager.2018-01-17.log
  • manager.2018-01-17.log

经过一些谷歌搜索后,我发现我可以通过将rotatable="false"添加到server.xml中相应的<Value>元素中来禁用'mysite'日志的旋转,但其他日志都没有对应的{ {1}}元素。

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

2 个答案:

答案 0 :(得分:3)

  

日志似乎是由logging.properties文件配置的,但是我找不到&#39;关闭&#39;此文件的选项

您可以尝试使用其他日志处理程序并将其配置为避免轮换

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

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的日志将转到下一个日志文件

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

答案 1 :(得分:1)

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

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