使用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

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

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

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

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

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

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

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

使用滚动包org.apache.log4j.rolling.RollingFileAppender时,只需删除ActiveFileName属性即可直接记录具有当前活动日期/时间的文件(如XYZ.log.20150101.log而不是XYZ.log)的解决方案。在apache-log4j-extras 1.1中使用log4j 1.2.x.