yuu_nkjm blog


2010-10-13(Wed) 編集

[Java][log4j] log4jで生成するログファイルの位置をJavaシステムプロパティで切りかえる

ある環境でlog4jを使ってログを吐かせようとしたとき,log4j.xml内で絶対パスを使ってファイル指定をしてしまうと,違う実行環境(特にWindowsとLinuxとか異なるOS環境)では,困ったことになってしまう.

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="E:/hoge/log/sim.log"/>

Linux上では普通"E:/hoge/log"なんてディレクトリは存在しない.

Java/Log4j - きのさいとを参考にして,Javaのシステムプロパティを用いることで,ログファイルの生成場所を変更することが出来た.

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${log.home}/sim.log"/>

上記のようにlog4j.xmlに書く.そして,実行時にJVMの引数に "-Dlog.home=E:/hoge/log"や"-Dlog.home=/home/usr/hoge/log"という様な形式で,log.homeに値を代入する.

JavaのシステムプロパティはSystem (Java Platform SE 6) getPropertiesなどを参考のこと.

つか,javaの実行ディレクトリからの相対パスにするのが簡単だな.


トップ «前の日(10-12) 最新 次の日(10-14)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|