如何配置Tomcat JULI日志记录以滚动日志文件?

17 java logging tomcat log4j

我有几个使用java.util.logging的webapps.Tomcat 5.5配置为使用Juli记录器,以便每个webapp都有自己的日志文件.问题是Juli没有最大文件大小和文件数的属性.使用Juli文件将无限增长,并且只在一天结束时滚动.此外,还保留了无限数量的日志文件.

您可以在此页面上看到FileHandler属性--Apache Tomcat 5.5文档
没有限制或计数属性(以下行不执行任何操作)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

在不更改webapps的情况下,有没有办法为每个应用程序获取日志文件大小的某种类型的边界的唯一日志文件?

更新: 我找到的解决方案根本不使用Juli记录器! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

谢谢,

格雷格

Mat*_*att 3

更新:阅读更多内容后,我现在明白了您的观点。“Tomcat 的 JULI 实现并不是要成为一个功能齐全的日志库,而只是这些库的一个简单桥梁。但是,JULI 确实提供了几个用于配置其处理程序的属性。下面列出了这些属性。” 有趣的是,他们说默认的 java.util.Logging 实现太有限,然后他们通过提供更具限制性的实现来解决它。

文件处理程序 javadoc

  • java.util.logging.FileHandler.limit 指定写入任何一个文件的近似最大数量(以字节为单位)。如果为零,则没有限制。(默认为无限制)。
  • java.util.logging.FileHandler.count 指定要循环的输出文件数量(默认为 1)。

对于每个 Web 应用程序一个文件,您可能希望通过记录器的名称将其分隔,这取决于如何为每个应用程序创建记录器。如果它们基于包或类名称,那么您可以根据该名称过滤日志。您提供的链接上的示例似乎告诉了如何执行此操作

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler
Run Code Online (Sandbox Code Playgroud)