我有使用java.util.logging中的一个数的webapps。 Tomcat的5.5配置为使用巨力记录仪,以便每个web应用都有自己的日志文件。 问题是,巨力不具有最大文件大小和文件计数的性质。 使用巨力的文件将在一天结束的无限地增长,只有卷。 此外,日志文件无限数量保持不变。
你可以看到这个页面上的FileHandler属性- Apache Tomcat上5.5文档
没有任何限制或计数财产(以下行什么也不做)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5
在不改变的webapps有没有办法让唯一的日志文件与日志文件大小某种类型的界限每应用?
更新:我找到了解决办法是不使用巨力记录了! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5
谢谢,
格雷格
更新:我现在明白你的意思阅读更后。 “Tomcat的巨力实现并不打算成为一个全功能的日志记录libary,只有一个简单的桥梁,这些图书馆。然而,巨力确实为配置其处理器提供几个属性。下面列出了这些。” 搞笑的是,他们说,默认的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
编辑:刚刚意识到你每web应用程序日志它可能无法在此设置的...
我的建议,假设你使用的是Tomcat 6.0,是编译完全共享记录额外的组件和使用Log4j配置滚动日志。
在这里建造指令http://tomcat.apache.org/tomcat-6.0-doc/building.html
然后替换的Tomcat / bin目录中的tomcat-juli.jar并放置在/ lib目录下的Tomcat的巨力,adapters.jar与log4j.jar和log4j.properties一起。
然后使用类似:
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logfile.log"/>
<param name="Threshold" value="INFO"/>
<param name="MaxFileSize" value="10MB"/>
<param name="MaxBackupIndex" value="3"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %p %m%n"/>
</layout>
</appender>