ログ出力先に全レベルのログを出力して、設定ファイルが期待通りかを確認するツール
修訂 | 3b7dde09df502f0af1d80e8784ec4b4fc54f9bad (tree) |
---|---|
時間 | 2022-01-23 01:10:23 |
作者 | kemono7h |
Commiter | kemono7h |
回数/待ち時間に対応。出力するログの見直し
@@ -19,6 +19,14 @@ | ||
19 | 19 | |
20 | 20 | private static final Logger logger = LoggerFactory.getLogger(LogConfigTester.class); |
21 | 21 | |
22 | + /** | |
23 | + * 指定のファイルまたはフォルダに含まれるloggerの設定ファイルを1つずつ読み込んで | |
24 | + * その出力先に全レベルのログを出力する。 | |
25 | + * | |
26 | + * @param path ロガの設定ファイルまたはフォルダ。フォルダはその階層のみ。 | |
27 | + * @param count ログ出力する件数。一定サイズでローテーションする場合に利用。 | |
28 | + * @param interval ログ1件を出した後に待つ秒数。指定時間になったらローテーションする場合、件数と組み合わせて使用。 | |
29 | + */ | |
22 | 30 | public void logoutAll(String path, int count, int interval){ |
23 | 31 | File[] files = null; |
24 | 32 |
@@ -33,26 +41,34 @@ | ||
33 | 41 | loggerList.add(new LogbackLogger()); |
34 | 42 | loggerList.add(new Log4jLogger()); |
35 | 43 | |
36 | - //ファイル1つずつの環境にする | |
37 | - for (File f : files) { | |
38 | - try { | |
39 | - Document doc = loadXmlFile(f); | |
40 | - | |
41 | - if (doc == null) { | |
42 | - continue; | |
44 | + for (int i=0; i<count; i++) { | |
45 | + if (i > 0) { | |
46 | + try { | |
47 | + Thread.sleep(interval * 1000); | |
48 | + } catch (InterruptedException e) { | |
49 | + //ignore | |
43 | 50 | } |
44 | - | |
45 | - for (BaseLogger bl : loggerList) { | |
46 | - if (bl.isTarget(doc)) { | |
47 | - bl.setConfigure(f); | |
48 | - bl.logging(f, doc); | |
51 | + } | |
52 | + | |
53 | + for (File f : files) { | |
54 | + try { | |
55 | + //ループ中に書き換えた設定ファイルが反映されるように毎回読み込む | |
56 | + Document doc = loadXmlFile(f); | |
57 | + | |
58 | + if (doc == null) { | |
59 | + continue; | |
49 | 60 | } |
61 | + | |
62 | + for (BaseLogger bl : loggerList) { | |
63 | + if (bl.isTarget(doc)) { | |
64 | + bl.setConfigure(f); | |
65 | + bl.logging(f, doc, i); | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + } catch (Throwable th) { | |
70 | + logger.warn("処理異常発生", th); | |
50 | 71 | } |
51 | - //List<String> lognames = getLoggerNames(file, doc); //setLoggingFile(doc); | |
52 | - | |
53 | - //loggingAll(file, doc, lognames); | |
54 | - } catch (Throwable th) { | |
55 | - logger.warn("処理異常発生", th); | |
56 | 72 | } |
57 | 73 | } |
58 | 74 | } |
@@ -89,7 +105,7 @@ | ||
89 | 105 | * 起動引数 |
90 | 106 | * [0] ログ設定ファイルのあるフォルダまたはファイル |
91 | 107 | * [1] 出力回数(省略可能) |
92 | - * [2] 1回出力後の待ち時間(msec) (省略可能) | |
108 | + * [2] 1回出力後の待ち時間(sec) (省略可能) | |
93 | 109 | * @param args |
94 | 110 | */ |
95 | 111 | public static void main(String[] args){ |
@@ -97,7 +113,7 @@ | ||
97 | 113 | System.out.println("Argument is none!"); |
98 | 114 | System.out.println("java -jar logconfchk.jar [LogConfig.xml]"); |
99 | 115 | System.out.println("java -jar logconfchk.jar [LogConfig.xml] [count]"); |
100 | - System.out.println("java -jar logconfchk.jar [LogConfig.xml] [count] [interval(msec)]"); | |
116 | + System.out.println("java -jar logconfchk.jar [LogConfig.xml] [count] [interval(sec)]"); | |
101 | 117 | return; |
102 | 118 | } |
103 | 119 | logger.info("=== START ==="); |
@@ -25,7 +25,7 @@ | ||
25 | 25 | public void setConfigure(File file) { |
26 | 26 | } |
27 | 27 | |
28 | - public void logging(File file, Document doc) { | |
28 | + public void logging(File file, Document doc, int count) { | |
29 | 29 | } |
30 | 30 | |
31 | 31 | //以下はユーティリティメソッド的に使う。 |
@@ -20,23 +20,23 @@ | ||
20 | 20 | setConfigureForLogback(file); |
21 | 21 | } |
22 | 22 | |
23 | - public void logging(File file, Document doc) { | |
23 | + public void logging(File file, Document doc, int count) { | |
24 | 24 | Exception warnEx = new RuntimeException("警告時の例外情報です。"); |
25 | 25 | Exception errorEx = new RuntimeException("異常時の例外情報です。"); |
26 | 26 | List<String> names = getLoggerNames(doc, "logger"); |
27 | - String baseMessage = "###[" + file.getName() + "]###"; | |
27 | + String configPath = "[" + file.getName() + "]"; | |
28 | 28 | |
29 | 29 | for (String name : names) { |
30 | 30 | if (name == null) { |
31 | 31 | name = this.getClass().getCanonicalName(); |
32 | 32 | } |
33 | 33 | Logger log = LoggerFactory.getLogger(name); |
34 | - | |
35 | - log.trace("{}[{}][TRACE LEVEL]{}", baseMessage, name, "トレースログです"); | |
36 | - log.debug("{}[{}][DEBUG LEVEL]{}", baseMessage, name, "デバッグログです"); | |
37 | - log.info ("{}[{}][INFO LEVEL]{}", baseMessage, name, "情報ログです"); | |
38 | - log.warn ("{}[{}][WARN LEVEL]{}", baseMessage, name, "警告ログです", warnEx); | |
39 | - log.error("{}[{}][ERROR LEVEL]{}", baseMessage, name, "異常ログです", errorEx); | |
34 | + // ログメッセージを出力します [logback.xml][DEBUG][0][org.commons.lang3] | |
35 | + log.trace("ログメッセージを出力します [{}][TRACE][{}][{}]", configPath, count, name); | |
36 | + log.debug("ログメッセージを出力します [{}][DEBUG][{}][{}]", configPath, count, name); | |
37 | + log.info ("ログメッセージを出力します [{}][INFO ][{}][{}]", configPath, count, name); | |
38 | + log.warn ("ログメッセージを出力します [{}][WARN ][{}][{}]", configPath, count, name, warnEx); | |
39 | + log.error("ログメッセージを出力します [{}][ERROR][{}][{}]", configPath, count, name, errorEx); | |
40 | 40 | } |
41 | 41 | } |
42 | 42 |