
バッチプログラムを作成中なのですが、ログの出し方で悩んでいます。
ログファイルを「バッチID」と「処理日付」の組み合わせで動的に変更したいと思っています。
また、ログは各クラスで出力したいと思っています。
悩んでいる箇所は
・どのようにしてバッチIDを動的に取得してログファイル名として設定するか
・複数のパッケージのクラスを使用するバッチの一連の処理をどのようにして一つのログファイルに出力するか
の2点あり、対応方法が検討もつかない状態です。
使用しているライブラリはlog4j 1.2.16.jarです。
アドバイスをいただけないでしょうか。
よろしくお願いいたします。
例として、下記のようなバッチを考えています。
foo.bar.mainパッケージにはpublic static void main(String[] args)のメソッドをもつクラスを配置します。
foo.bar.commonパッケージにはfoo.bar.mainに配置したクラスから共通で利用する処理を実装したクラスを配置します。
foo.bar.main
+- Batch1.class
+- Batch2.class
・
・
・
foo.bar.common
+- Common1.class
+- Common2.class
+- Common3.class
・
・
・
処理の流れで言うと、
Batch1を実行する場合
1. javaコマンドでBatch1実行、Batch1クラスでログを出力
2. Batch1からCommon1クラスのメソッドを実行、Common1クラスでログを出力
3. Batch1からCommon2クラスのメソッドを実行、Common2クラスでログを出力
4. 処理終了
ログは「Batch1_20120612.log」に全て出力される。
Batch2を実行する場合
1. javaコマンドでBatch2実行、Batch2クラスでログを出力
2. Batch2からCommon1クラスのメソッドを実行、Common1クラスでログを出力
3. Batch2からCommon3クラスのメソッドを実行、Common3クラスでログを出力
4. 処理終了
ログは「Batch2_20120612.log」に全て出力される。
No.2ベストアンサー
- 回答日時:
Batch1と、Batch2の呼び出すバッチファイルが別ならば、それぞれのlog4j.properties を作成して -Dlog4j.configuration オプションで起動してあげればいいです。
同じバッチからの呼び出しなら、専用のAppendarを作るしかないですね。
No.1
- 回答日時:
いまいち何が問題なのか伝わってこないのですが・・・
簡単なコード例を出すと良いと思います。
・どのようにしてバッチIDを動的に取得してログファイル名として設定するか
実行時のクラス名を動的に取得したいということであれば、getClass().getName()でできます。
・複数のパッケージのクラスを使用するバッチの一連の処理をどのようにして一つのログファイルに出力するか
log4jを使ったことがないのでわかりかねますが・・・
ちょっと調べてみたところAppenderを使うと良いみたいですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Java Java 配列<選挙> 4 2023/07/31 15:07
- その他(ニュース・時事問題) 景観行政団化や景観計画策定が何故かあまり進んでいない。 3 2023/06/30 19:22
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で別スレッドの終了を知りたい
-
Javaプログラムからポップアッ...
-
ラベルの表示までが異常に遅い...
-
[Java] while(true)の意味
-
FocusLostでイベント処理を中断...
-
ラジオボタンの選択判定
-
数値の定数を付ける時
-
WaitForSingleObjectの復帰時間
-
C#の処理をリアルタイムに表示...
-
ServletContextLisntener#conte...
-
tryの終了
-
ExcelVBA で文字列の特定の文字...
-
マルチスレッドのデバッグ
-
BLOB型の画像データを表示したい
-
Tomcat高負荷時の設定について
-
「UIスレッド」「マルチスレッ...
-
VBScriptでのWord印刷
-
Javaアプリケーション実行の返...
-
Javaでのデバッグコード削除
-
JavaScriptとJSPの連携
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[Java] while(true)の意味
-
tryの終了
-
Javaでのデバッグコード削除
-
Javaアプリケーション実行の返...
-
Javaプログラムからポップアッ...
-
onBlurとonFocusの処理順序につ...
-
Tomcat高負荷時の設定について
-
数値の定数を付ける時
-
アコーディオンメニューをアン...
-
ラジオボタンの選択判定
-
ラベルの表示までが異常に遅い...
-
ExcelVBA で文字列の特定の文字...
-
C#で別スレッドの終了を知りたい
-
素数判定を再帰処理で
-
JavaScriptからJAVAクラスを呼...
-
switch文の中に、throws new Ex...
-
PHPでDB処理中にプログレスバー...
-
C#の処理をリアルタイムに表示...
-
Windowsサービスの処理
-
ftp 同時複数接続の負荷テスト...
おすすめ情報