21

次のアペンダーが追加されたログファイルがあります。


logger.addAppender(new FileAppender(new PatternLayout(),"log.txt"));

つまり、アプリケーションを実行するたびに、追加のログ情報が同じログファイルに追加されます。毎回ファイルを上書きするにはどうすればよいですか?

4

4 に答える 4

39

プロパティファイルでそのように宣言されたアペンダーがある場合:

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=file.log
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d %-5p %c - %m%n

次に、追加したいのは

log4j.appender.LOGFILE.Append=false

デフォルト値はですtrue

したがって、プログラムでアペンダーを宣言している場合は、を呼び出しますsetAppend(false)

于 2009-06-08T20:59:18.627 に答える
7

XMLファイルに次の行を追加します。

<param name="Append" value="false" />

log4jでの奇妙なXML解析のため、<param>要素はブロック内に表示される必要があることに注意してください(他のタイプの要素と混ざり合ってはなりません)。

たとえば、これは機能します。

<appender name="appender-log" class="org.apache.log4j.FileAppender">
<param name="File" value="efoimporter.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%m%n" />
</layout>
</appender>

しかし、これはしません(!)

<appender name="appender-log" class="org.apache.log4j.FileAppender">
<param name="File" value="efoimporter.log" />
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%m%n" />
</layout>
<param name="Append" value="false" />
</appender>
于 2012-09-12T10:31:23.790 に答える
6

Mattによる以前の回答は、プロパティファイルを使用することを除いて正しいです。プログラムによるアプローチを探している場合は、次のようにコードを変更して、追加モードを無効にすることをお勧めします。

logger.addAppender(new FileAppender(new PatternLayout(),"log.txt", **false**));
于 2009-06-09T09:28:32.917 に答える
6

RollingFileAppenderを使用します。

于 2009-06-08T15:53:31.403 に答える