2017-07-05 2 views
0

DailyRollingFileAppenderを設定してファイル名の前に日付を設定する方法はありますか?すなわちlog.err.2017.07.05ではなく2017.07.05.log.errになります。Log4j DailyRollingFileファイル名の前の日付

System.setProperty("log4j.log.file", "your_file_name");

それともあなたがいる場合は、-Dlog4j.log.file=your_file_nameを使用することができた:

あなたは(BasicConfigurator.configure()を使用してなど)のlog4jを設定する前にこれは私の現在の設定

<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

あなたはlog4j.appender.rollingAppender.rollingPolicy '一度これを試すことができます.fileNamePattern = F:/ temp /%d {yyyy-MM-dd} filename.log' – Manindar

+0

@Manindar彼はプロパティファイルではないXML設定を持っています。 – SomeDude

+0

申し訳ありませんが、彼はタグで同じことを試すことができます。このようなものを試してみてください、わかりませんが、それはあなたにいくつかのアイデアを与えるかもしれません。 ' ' – Manindar

答えて

0

で、使用してlog4j.log.fileというプロパティを設定しますコマンドラインを使用します。しかし、あなたは日付ランタイムを構築すると思いますので、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}" />

関連する問題