1 package hayashi.yuu.tools.logger;
\r
3 import java.io.IOException;
\r
4 import java.io.InputStream;
\r
5 import java.util.logging.LogManager;
\r
6 import java.util.logging.Logger;
\r
10 * ロギングファイルに動作ログを出力する簡単なモデル
\r
11 * "log"+日時+".log"ファイルに出力される。
\r
14 * Logger logger = LoggerFactory.getInstance();
\r
16 * logger.finest("[finest] 詳細レベル(高)");
\r
17 * logger.finer("[finer] 詳細レベル(中)");
\r
18 * logger.fine("[fine] 詳細レベル(小)");
\r
19 * logger.config("[config] 設定");
\r
20 * logger.info("[info] 情報");
\r
21 * logger.warning("[warning] 警告");
\r
22 * logger.severe("[severe] 致命的");
\r
24 * @version 2010/02/07
\r
27 public abstract class LoggerFactory
\r
29 public static void main(String[] args) {
\r
32 * handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
\r
35 * java.util.logging.ConsoleHandler.level=FINEST
\r
36 * java.util.logging.ConsoleHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter
\r
38 * java.util.logging.FileHandler.level=WARNING
\r
39 * java.util.logging.FileHandler.pattern=SampleLogging%u.%g.log
\r
40 * java.util.logging.FileHandler.formatter=hayashi.yuu.tools.logger.YuuLogFormatter
\r
41 * java.util.logging.FileHandler.count=10
\r
45 * info、warning、severeの3つのレベルのみ標準エラー出力に出力されます。
\r
46 * また、同時にファイルへも出力します。
\r
47 * 出力先ファイルは「Logging%u.%g.txt」。ログファイルは10個でローテーションする。
\r
55 logger = LoggerFactory.getInstance();
\r
56 logger.finest("[finest] 詳細レベル(高)");
\r
57 logger.finer("[finer] 詳細レベル(中)");
\r
58 logger.fine("[fine] 詳細レベル(小)");
\r
59 logger.config("[config] 設定");
\r
60 logger.info("[info] 情報");
\r
61 logger.warning("[warning] 警告");
\r
62 logger.severe("[severe] 致命的");
\r
64 catch (Exception e) {
\r
65 e.printStackTrace();
\r
70 * ログ設定プロパティファイルのファイル内容
\r
73 protected static final String LOGGING_PROPERTIES = "log.properties";
\r
79 public static Logger getInstance() {
\r
80 final Logger logger = Logger.getLogger("log"); // Loggerオブジェクトの生成
\r
82 logger.fine("ログ設定: "+ LOGGING_PROPERTIES +"をもとにログを設定します。");
\r
83 final InputStream inStream = hayashi.yuu.tools.logger.YuuLogFormatter.class.getClassLoader().getResourceAsStream(LOGGING_PROPERTIES);
\r
84 if (inStream == null) {
\r
85 logger.info("ログ設定: "+ LOGGING_PROPERTIES +"はクラスパスには見つかりませんでした。");
\r
89 LogManager.getLogManager().readConfiguration(inStream);
\r
90 logger.config("ログ設定: LogManagerを設定しました。");
\r
92 catch (IOException e) {
\r
93 logger.warning("ログ設定: LogManager設定の際に例外が発生しました。:" + e.toString());
\r
97 if (inStream != null) inStream.close();
\r
99 catch (IOException e) {
\r
100 logger.warning("ログ設定: ログ設定プロパティファイルのストリームクローズ時に例外が発生しました。:" + e.toString());
\r