java - 如何配置 Tomcat JULI 日志记录来滚动日志文件?

标签 java tomcat logging log4j

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

您可以在此页面上看到 FileHandler 属性 - Apache Tomcat 5.5 Documentation
没有限制或计数属性(以下几行什么都不做)
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

谢谢,

格雷格

最佳答案

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

FileHandler javadocs

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

对于每个网络应用程序一个文件,您可能希望通过记录器的名称将其分开,这取决于为每个应用程序创建记录器的方式。如果它们基于包名或类名,那么您可以基于此过滤日志。看起来您提供的链接上的示例说明了如何执行此操作

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler

关于java - 如何配置 Tomcat JULI 日志记录来滚动日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136300/

相关文章:

java - 解析方法及特殊情况

tomcat - azure 网站中tomcat 7的默认用户名和密码

java - 本地服务器登录putty

docker - docker-compose和ansible中的“mount if not exists”子句

java - Spring MVC Controller 方法调用 GET 但不调用 POST

java - 如何下载文件而不是在浏览器中打开?

java - 闩锁(用于等待异步响应)卡住 WebView(和 UI)

eclipse - 通过 Eclipse 部署 Web 应用程序时,是否可以在 server.xml 中维护 tomcat 配置?

java - 运行在 1.6 JVM 上的 Jetty 无法运行在 Java 1.6 上编译的 webapp

c - 将 C 中 fork() 的结果记录到文件中以查看结果