我使用log4j 1.2.16
的RollingFileAppender
,当日志文件达到一定大小时,它会滚动日志文件。现在我想每天滚动日志文件和,当他们达到一定的大小。因此每天会有一个或多个日志文件。按大小和时间滚动日志
例如,
myapp.log myapp-17.12.2013.log myapp-16.12.2012.log myapp-16.12.2012.1.log myapp-16.12.2012.2.log
是否有现成的,货架附加器,这确实它已经?
我使用log4j 1.2.16
的RollingFileAppender
,当日志文件达到一定大小时,它会滚动日志文件。现在我想每天滚动日志文件和,当他们达到一定的大小。因此每天会有一个或多个日志文件。按大小和时间滚动日志
例如,
myapp.log myapp-17.12.2013.log myapp-16.12.2012.log myapp-16.12.2012.1.log myapp-16.12.2012.2.log
是否有现成的,货架附加器,这确实它已经?
确实有两个选项:
请记住,这两个选项使用文件重命名。如果有另一个脚本自动移动这些文件,请仔细考虑这一点。当两个进程处理相同的文件时,文件重命名是有风险的。
我的建议是直接写入模式中的不可变日志文件名:myapp- {dd.MM.yyyy}。{X} .log。这样“滚动”就是关闭一个文件并打开一个新文件。没有重命名。没有后台线程。
它是workrd。非常感谢。 –
快速回答是“否”。看看log4j的javadoc:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html
只有两个开箱即用的文件appender:DailyRollingFileAppender和RollingFileAppender(第一个不推荐,因为它有同步问题)。
为了实现你想要的,你应该创建你自己的appender,扩展RollingFileAppender并修改它以在日期发生变化时滚动文件。修改将是方法:
protected void subAppend(LoggingEvent event)
这里你可以看到它的来源:http://www.docjar.com/html/api/org/apache/log4j/RollingFileAppender.java.html(线274)。
你只需要复制和粘贴代码,并更改如果调用rollOver以满足您的需求。
下面配置XML将做的工作: JAR要求:log4j的,滚动的appender-20150607-2059
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="file"
class="uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender">
<param name="File" value="D:\\App.log" />
<param name="Threshold" value="DEBUG" />
<param name="DatePattern" value=".yyyy-MM-dd" />
<param name="MaxFileSize" value="1KB" />
<param name="MaxRollFileCount" value="100" />
<param name="ScavengeInterval" value="30000" />
<param name="BufferedIO" value="false" />
<param name="CompressionAlgorithm" value="GZ" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %-23d{ISO8601} [%t] %x: %c{1} - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
http://stackoverflow.com/questions/3823977/need-a-working-example -of-configurations-log4j-rollingfileappender-via-properties – Stefan