6

我正在使用下面的代码编写我的日志文件,但它将文件存储为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

4

3 回答 3

6

正如这个 StackOverflow Q&A中提到的, a 的目的RollingFileAppender是在某个定义的时间间隔自动创建一个新的日志文件。在 的情况下DailyRollingFileAppender,该时间间隔是每天的凌晨 12:00。

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

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

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

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

于 2013-09-10T13:28:23.983 回答
1

使用滚动包 org.apache.log4j.rolling.RollingFileAppender 时,可以通过简单地删除 ActiveFileName 属性来直接记录到具有当前活动日期/时间的文件(例如 XYZ.log.20150101.log 而不是 XYZ.log)的解决方案在 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>
于 2015-02-11T04:32:15.523 回答
1

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

您可以在此处查看答案 设置日志文件名以在 Log4j 中包含当前日期

于 2013-09-10T13:16:53.730 回答