●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で絶対パスを指定してもウンともスンとも言わない。クラスパスは違う。なるほど?
【解決策】
そうすると無事にログが出力された。
別のディレクトリでも見つけてもらえる方法は分からず。特定のファイルのパスを設定するオプションとかあるのだろうか。
処理的には問題ないので一応これで進めることに。腑に落ちないけども。
出力成功したログが文字化けしてたりもしたけど、これはxmlの設定でどうにかなった。この設定も忘れないうちにメモりたい。
こういう所でつまずいてしまうポンコツ加減よ。