- PR -

Log4jで相対パスで出力のログファイルを設定できますか?

1
投稿者投稿内容
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-02-24 12:08
こんにちは!
Log4jでは、Propertiesファイルの中に下記のようにログファイルの発生場所を
設定できますが、この設定をすると、ログファイルは/rootの下に発生してしまいます。
 log4j.appender.A4.file=/mylog.txt

もし、現在のプロジェクトの下にログファイルを発生したければどう設定すれば
いいか教えていただけませんか?
私の確認で、下記のように設定しても、ログファイルは/rootの下に発生してしまいます。
 log4j.appender.A4.file=mylog.txt

_________________
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-02-24 12:42
「現在のプロジェクト」とは何のことですか?

[ メッセージ編集済み 編集者: uk 編集日時 2006-02-24 12:42 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-02-24 14:35
絶対パス表記じゃない指定で出力できているようですので、表題については「できます」が答えになりそうですね。

「現在のプロジェクトの下」というのが何を指しているのかわかりませんが、出力したいパスを指定すれば良いのではないでしょうか。
結局何がわからないのかがよくわかりません。

JVM の起動ディレクトリが /root になっているのかな?とも思います。
起動ディレクトリを確認するなり、必要なパスを指定するなり、log4j のソースコードを確認するなりしてみてはいかがでしょう。
ソースを確認するなら FileAppender.java あたりになると思います。
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-02-24 17:37
ご返事有難うございます。
「現在のプロジェクト」とは、Tomcatのwebappsの下で稼動しているプロジェクトとのことです。開発しているWebアプリはパッケージとして多くのユーザの環境で稼動したいので、もし相対パスで出力ログファイルのパスを指定できれば、デフォルトでプロジェクト名(固定です)をセットすればユーザに取っては楽ではないかと思います。言い換えれば、ログファイルはプロジェクトのあるディレクトリに出力したいのです。どうすればいいでしょうかご教授ください。
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-02-24 18:21
自己返信です。

Log4jを使っているクラスからの相対出力パスをセットしたければ
どうすればいいでしょうか?ご教授ください。
_________________
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-02-25 02:37
システム・プロパティが参照可能です。
log4j.appender.A4.file=${foo}/mylog.txt

上記の場合、起動時に -Dfoo=/path/to/dir と指定すれば
/path/to/dir/mylog.txt に出力されます。


[ メッセージ編集済み 編集者: はしもと 編集日時 2006-02-25 02:41 ]
1

スキルアップ/キャリアアップ(JOB@IT)