蝸牛備忘録

自分用の備忘録になる予定です。

●jarファイルをバッチファイルから実行する際のLog4j2設定ファイルの場所

log4j2でつまった箇所をメモ

 

【トラブル概要】

log4j2を利用したプログラムを実行可能jarファイルに。

これをバッチから呼び出す時にログが出なくなってしまった。

ちなみにlog4j2.xml(設定ファイル)はsrcのresorcesディレクトリの中に置いていた。

eclipseからは問題なく実行されていたのに…。

 

とりあえずバッチはコマンドプロンプトのコマンドでjar実行してるだけ。

チラ見えするコマンドプロンプトにエラーが出てるっぽかったので、画面を確認するために下記のようにpauseを置いて処理を止めてみる。

cd [jarの置いてあるディレクトリ]

java -jar [jarファイル名]
pause

 

そして確認できたエラーの内容↓

 

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

 

log4j2の設定ファイルが無いと怒られているっぽい。デフォルトの設定使ったからコンソールにしか出さんよと。

そんな事言ったってお前...jarの中にあるやんけ....

バッチファイルにて-classpath絶対パスを指定してもウンともスンとも言わない。クラスパスは違う。なるほど?

 

【解決策】

jarを置いてるディレクトリにlog4j2.xmlを置く

 

そうすると無事にログが出力された。

別のディレクトリでも見つけてもらえる方法は分からず。特定のファイルのパスを設定するオプションとかあるのだろうか。

処理的には問題ないので一応これで進めることに。腑に落ちないけども。

 

出力成功したログが文字化けしてたりもしたけど、これはxmlの設定でどうにかなった。この設定も忘れないうちにメモりたい。

こういう所でつまずいてしまうポンコツ加減よ。