ロギング構成のシステム プロパティに応じて、log4j に異なるファイルを使用させることができます。(このアペンダーはlog4j エクストラプロジェクトにあります) 例
<appender name="R2" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="logs/log_${appName}.log.%d" />
<param name="ActiveFileName" value="logs/log_${appName}.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %c -\n %-5p: %m%n" />
</layout>
</appender>
参照${appName}
: を使用して、これを起動パラメータとして vm に渡すことができます-DappName=MyApp
。を使用して実行時にこれを設定することもできますSystem.setProperty(.., ..)
が、これは log4j が初期化される前に行う必要があります。プロパティの値は、ランチャー プロセスによって決まります。
のようなログ ファイルが作成されますlog_MyApp.log
。
編集: 申し訳ありませんが、プロパティ ファイルを使用していて、サイズ ベースのローリング ポリシーが必要であるという事実を見逃していました。このファイルに次のように記述できます (ただし、実際のトリックは同じです)。
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File={myApp}.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
これはより完全です: http://logging.apache.org/log4j/1.2/manual.html :)