OSDN Git Service

ac57164fe706557be3b6ee5a17939b69aa24b7a5
[importpicture/importpicture.git] / src / main / java / osm / jp / hayashi / tools / log / LoggerFactory.java
1 package osm.jp.hayashi.tools.log;\r
2 \r
3 import java.io.FileInputStream;\r
4 import java.io.IOException;\r
5 import java.io.InputStream;\r
6 import java.net.URISyntaxException;\r
7 import java.nio.file.Files;\r
8 import java.nio.file.Path;\r
9 import java.nio.file.Paths;\r
10 import java.util.logging.FileHandler;\r
11 import java.util.logging.LogManager;\r
12 import java.util.logging.Logger;\r
13 \r
14 import osm.jp.hayashi.tools.files.Directory;\r
15 \r
16 /**\r
17  * ロギングファイルに動作ログを出力する簡単なモデル\r
18  * "log"+日時+".log"ファイルに出力される。\r
19  * 利用例:\r
20  * (1) インスタンスを取得する。\r
21  *              Logger logger = LoggerFactory.getInstance();\r
22  * (2) ログ出力例\r
23  *              logger.finest("[finest] 詳細レベル(高)");\r
24  *              logger.finer("[finer] 詳細レベル(中)");\r
25  *              logger.fine("[fine] 詳細レベル(小)");\r
26  *              logger.config("[config] 設定");\r
27  *              logger.info("[info] 情報");\r
28  *              logger.warning("[warning] 警告");\r
29  *              logger.severe("[severe] 致命的");\r
30  * @author yuu\r
31  * @version 2010/02/07\r
32  * @since 2010/02/07\r
33  */\r
34 public abstract class LoggerFactory\r
35 {\r
36         public static void main(String[] args) {\r
37                 /*\r
38                  * (設定例)\r
39                  *              handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler\r
40                  *              .level=FINEST\r
41                  *\r
42                  *              java.util.logging.ConsoleHandler.level=FINEST\r
43                  *              java.util.logging.ConsoleHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter\r
44                  *\r
45                  *              java.util.logging.FileHandler.level=WARNING\r
46                  *              java.util.logging.FileHandler.pattern=SampleLogging%u.%g.log\r
47                  *              java.util.logging.FileHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter\r
48                  *              java.util.logging.FileHandler.count=10\r
49                  *\r
50                  *\r
51                  * 標準設定時でのログ出力。\r
52                  * info、warning、severeの3つのレベルのみ標準エラー出力に出力されます。\r
53                  * また、同時にファイルへも出力します。\r
54                  * 出力先ファイルは「Logging%u.%g.txt」。ログファイルは10個でローテーションする。\r
55                  *\r
56                  * 情報: [info] 情報\r
57                  * 警告: [warning] 警告\r
58                  * 致命的: [severe] 致命的\r
59                  */\r
60                 Logger logger;\r
61                 try {\r
62                         logger = Logger.getLogger("log");\r
63                         FileHandler fHandler = new FileHandler("Sample.log", true);\r
64                         fHandler.setFormatter(new YuuLogFormatter());\r
65                         logger.addHandler(fHandler);\r
66                         \r
67                         /*\r
68                         logger = LoggerFactory.getInstance();\r
69                         */\r
70                         logger.finest("[finest] 詳細レベル(高)");\r
71                         logger.finer("[finer] 詳細レベル(中)");\r
72                         logger.fine("[fine] 詳細レベル(小)");\r
73                         logger.config("[config] 設定");\r
74                         logger.info("[info] 情報");\r
75                         logger.warning("[warning] 警告");\r
76                         logger.severe("[severe] 致命的");\r
77                 }\r
78                 catch (Exception e) {\r
79                         e.printStackTrace();\r
80                 }\r
81         }\r
82 \r
83     /**\r
84          * ログ設定プロパティファイルのファイル内容\r
85          *\r
86          */\r
87         protected static final String LOGGING_PROPERTIES = "log.properties";\r
88 \r
89         /**\r
90          * 簡単な標準ロガーを得る\r
91          * @return      標準ロガー\r
92          */\r
93         public static Logger getInstance() {\r
94                 final Logger logger = Logger.getLogger("log");                                                  // Loggerオブジェクトの生成\r
95                 LogManager manager = LogManager.getLogManager();\r
96                 try {\r
97                         manager.readConfiguration(new FileInputStream(LOGGING_PROPERTIES));\r
98                 } catch (SecurityException | IOException e) {\r
99                         e.printStackTrace();\r
100                 }\r
101                 return logger;\r
102         }\r
103 }\r