有没有办法配置DailyRollingFileAppender将日期放在文件名之前?即2017.07.05.log.err而不是log.err.2017.07.05。
这是我目前的配置
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="append" value="true" />
<param name="DatePattern" value="'.'yyyy.MM.dd" />
<param name="file" value="./data/logs/log.err" />
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p [%c{1}]] %m%n" />
</layout>
</appender>
答案 0 :(得分:0)
在配置log4j之前(例如使用BasicConfigurator.configure()
),使用以下命令设置名为log4j.log.file
的属性:
System.setProperty( "log4j.log.file", "your_file_name" );
如果您使用命令行,也可以使用-Dlog4j.log.file=your_file_name
。但我想你构建了日期运行时,所以使用setProperty()
。
您的文件名可以使用
构建String dateString = new SimpleDateFormat("yyyy.MM.dd").format(new Date()).toString();
String filename = "./data/logs/" + File.separator + dateString + ".log.err";
并在log4j xml中指定属性,如:
<param name="file" value="${log4j.log.file}" />