• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jarファイルとして作成されたJavaのログ出力)

Javaのログ出力に関する質問

このQ&Aのポイント
  • Javaで作成されたバッチプログラムをWindows2008サーバーのタスクスケジューラから呼び出して実行する際に、ログが出力されない問題が発生しました。ログはLog4j(xml)で出力しており、正しく設定されているはずですが、なぜ出力されないのか教えてください。
  • 問題の環境は以下の通りです。Javaプログラム(Hoge.java)には、DBアクセスするプログラムが含まれています。ログはlog.info("文字列");のように記述されています。Hoge.javaはHoge_batch.jarとしてjarファイル化されています。また、ログはlog4j.xmlに以下のように設定されています。
  • ログの出力先はc:\log\trace.logですが、実行するとログが出力されません。Windows2008サーバーからパワーシェルを呼び出し、パワーシェル内でcall.batを実行して、その中で「java -cp Hoge_batch.jar jp.co.company.batch.hoge」としてJavaプログラムを呼び出しています。Hoge.javaの処理は正常に動作しており、ログファイルの出力先も正しく設定されているはずですが、なぜログが出力されないのかわかりません。お手数ですが、ご教示いただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

> call.batの記述で、java -cp Hoge_batch.jar jp.co.company.batch.hoge >> c:\log\hoge.log これができるなら call.batの記述で、java -cp Hoge_batch.jar jp.co.company.batch.hoge >>c:\log\hoge.log 2>>c:\log\error.log してしまえばいいのでは?

t_hirai
質問者

お礼

teketonさん はい。最悪はその方法で考えていますが、 他のプログラムはlog4jを使用しているので、合わせる必要があります。どうしても無理であれば、 >>と、2>> で行うしかないと考えています。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

タスクスケジューラーから実行するユーザー権限に、 ログフォルダ、ファイルへのアクセス権限が不足しているのでは?

t_hirai
質問者

お礼

回答ありがとうございます。 call.batの記述で、java -cp Hoge_batch.jar jp.co.company.batch.hoge >> c:\log\hoge.log と記述すると、標準出力のログは出力されるので、権限はあるのかなと思っています。 他にも可能性がありましたら教えてください。

関連するQ&A