hayashi lib.
java
Revisión | c505d3e7a4bf22aca1ae69c8013dd3c5b34f571e (tree) |
---|---|
Tiempo | 2013-01-06 00:53:25 |
Autor | yuu hayashi <hayashi.yuu@gmai...> |
Commiter | yuu hayashi |
Loggerの設定をlog.properties ファイルから変更できるようにした
@@ -0,0 +1,8 @@ | ||
1 | +handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler | |
2 | +.level=INFO | |
3 | +java.util.logging.ConsoleHandler.level=FINEST | |
4 | +java.util.logging.ConsoleHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter | |
5 | +java.util.logging.FileHandler.level=INFO | |
6 | +java.util.logging.FileHandler.pattern=Logging%u.%g.txt | |
7 | +java.util.logging.FileHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter | |
8 | +java.util.logging.FileHandler.count=10 |
@@ -1,10 +1,7 @@ | ||
1 | 1 | package hayashi.yuu.tools.logger; |
2 | 2 | |
3 | -import java.io.ByteArrayInputStream; | |
4 | 3 | import java.io.IOException; |
5 | 4 | import java.io.InputStream; |
6 | -import java.io.UnsupportedEncodingException; | |
7 | -import java.util.logging.FileHandler; | |
8 | 5 | import java.util.logging.LogManager; |
9 | 6 | import java.util.logging.Logger; |
10 | 7 |
@@ -69,51 +66,25 @@ public abstract class LoggerFactory | ||
69 | 66 | } |
70 | 67 | } |
71 | 68 | |
72 | - public static Logger logger; | |
69 | + /** | |
70 | + * ログ設定プロパティファイルのファイル内容 | |
71 | + * | |
72 | + */ | |
73 | + protected static final String LOGGING_PROPERTIES = "log.properties"; | |
73 | 74 | |
74 | 75 | /** |
75 | 76 | * 簡単な標準ロガーを得る |
76 | 77 | * @return 標準ロガー |
77 | 78 | */ |
78 | 79 | public static Logger getInstance() { |
79 | - if (logger == null) { | |
80 | - // ハンドラオブジェクトの生成 | |
81 | - FileHandler handler; | |
82 | - try { | |
83 | - // 1MBまでの追記型、10ファイル | |
84 | - handler = new FileHandler("Logging", 1024*1024, 10, true); | |
85 | - handler.setFormatter(new YuuLogFormatter()); // 出力フォーマットの指定 | |
86 | - logger = Logger.getLogger("log"); // Loggerオブジェクトの生成 | |
87 | - logger.addHandler(handler); // Loggerオブジェクトにハンドラを追加 | |
88 | - } catch (IOException e) { | |
89 | - e.printStackTrace(); | |
90 | - } | |
91 | - } | |
92 | - return logger; | |
93 | - } | |
94 | - | |
95 | - /** | |
96 | - * ログ設定プロパティファイルのファイル内容 | |
97 | - * | |
98 | - */ | |
99 | - protected static final String LOGGING_PROPERTIES_DATA | |
100 | - = "handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler\n" | |
101 | - + ".level=INFO\n" | |
102 | - + "java.util.logging.ConsoleHandler.level=FINEST\n" | |
103 | - + "java.util.logging.ConsoleHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter\n" | |
104 | - + "java.util.logging.FileHandler.level=INFO\n" | |
105 | - + "java.util.logging.FileHandler.pattern=Logging%u.%g.txt\n" | |
106 | - + "java.util.logging.FileHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter\n" | |
107 | - + "java.util.logging.FileHandler.count=10"; | |
80 | + final Logger logger = Logger.getLogger("log"); // Loggerオブジェクトの生成 | |
108 | 81 | |
109 | - /** | |
110 | - * static initializer によるログ設定の初期化 | |
111 | - */ | |
112 | - static { | |
113 | - final Logger logger = Logger.getLogger("SampleLogging"); | |
114 | - InputStream inStream = null; | |
115 | - try { | |
116 | - inStream = new ByteArrayInputStream(LOGGING_PROPERTIES_DATA.getBytes("UTF-8")); | |
82 | + logger.fine("ログ設定: "+ LOGGING_PROPERTIES +"をもとにログを設定します。"); | |
83 | + final InputStream inStream = hayashi.yuu.tools.logger.YuuLogFormatter.class.getClassLoader().getResourceAsStream(LOGGING_PROPERTIES); | |
84 | + if (inStream == null) { | |
85 | + logger.info("ログ設定: "+ LOGGING_PROPERTIES +"はクラスパスには見つかりませんでした。"); | |
86 | + } | |
87 | + else { | |
117 | 88 | try { |
118 | 89 | LogManager.getLogManager().readConfiguration(inStream); |
119 | 90 | logger.config("ログ設定: LogManagerを設定しました。"); |
@@ -121,17 +92,15 @@ public abstract class LoggerFactory | ||
121 | 92 | catch (IOException e) { |
122 | 93 | logger.warning("ログ設定: LogManager設定の際に例外が発生しました。:" + e.toString()); |
123 | 94 | } |
124 | - } | |
125 | - catch (UnsupportedEncodingException e) { | |
126 | - logger.severe("ログ設定: UTF-8エンコーディングがサポートされていません。:" + e.toString()); | |
127 | - } | |
128 | - finally { | |
129 | - try { | |
130 | - if (inStream != null) inStream.close(); | |
131 | - } | |
132 | - catch (IOException e) { | |
133 | - logger.warning("ログ設定: ログ設定プロパティファイルのストリームクローズ時に例外が発生しました。:" + e.toString()); | |
134 | - } | |
135 | - } | |
136 | - } | |
95 | + finally { | |
96 | + try { | |
97 | + if (inStream != null) inStream.close(); | |
98 | + } | |
99 | + catch (IOException e) { | |
100 | + logger.warning("ログ設定: ログ設定プロパティファイルのストリームクローズ時に例外が発生しました。:" + e.toString()); | |
101 | + } | |
102 | + } | |
103 | + } | |
104 | + return logger; | |
105 | + } | |
137 | 106 | } |