使用log4j创建包含日期的日志文件

时间:2013-09-10 13:11:41

标签: java logging log4j

我正在使用下面的代码编写我的日志文件,但它将文件存储为QueryLog.log。我错过了什么吗?检查我的log4j.properties文件代码

log4j.logger.org.hibernate=INFO
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=debug
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=debug
log4j.rootLogger = DEBUG, FILE
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd-a
log4j.appender.FILE.File=log4j/QueryLog.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern= %d{HH:mm:ss} %-5p %c - %m%n

我使用的链接:

http://www.tutorialspoint.com/log4j/log4j_logging_files.htm

http://www.codejava.net/coding/configure-log4j-for-creating-daily-rolling-log-files

3 个答案:

答案 0 :(得分:6)

this StackOverflow Q&A中所述,RollingFileAppender的目的是以某个定义的间隔自动创建新的日志文件。在DailyRollingFileAppender的情况下,该间隔是每天的凌晨12:00。

这意味着log4j创建的第一个文件将具有您在此处指定的文件名:

log4j.appender.FILE.File=log4j/QueryLog.log

而且,从那时起,每天都会创建一个新的日志文件,并附加日期。

要始终使用附加日期命名文件,您可以使用Geoff Mottram的DatedFileAppender

答案 1 :(得分:1)

此行设置日志文件名,在您的log4j属性中: log4j.appender.FILE.File = log4j的/ QueryLog.log

你可以在这里看到答案 Setting a log file name to include current date in Log4j

答案 2 :(得分:0)

直接使用当前活动日期/时间(例如XYZ.log.20150101.log而不是XYZ.log)直接登录到文件的解决方案可以通过在使用滚动包org.apache.log4j时简单地删除ActiveFileName属性来完成。 roll.RollingFileAppender在apache-log4j-extras 1.1中,log4j为1.2.x。

<appender name="defaultFileAppender" class="org.apache.log4j.rolling.RollingFileAppender">
    <param name="append" value="true" />
    <param name="Threshold" value="INFO" />
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern"
            value="${catalina.base}/logs/application/custom-application-logger.%d{yyyy-MM-dd_HH_mm}" />
    </rollingPolicy>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
            value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %-10t [%-40.40c] %x - %m%n" />
    </layout>
</appender>