2013年3月5日火曜日

Java Logging API JDK7では

Javaの標準ライブラリでログを出力してくれるLogging APIについては、
以下のサイトに詳しく書いてある↓
http://www.02.246.ne.jp/~torutk/javahow2/logging.html

Logging APIのJava SE6からJava SE7への主な変更点

①Logger.getLoger(Logger.GLOBAL_LOGGER_NAME)は非推奨になったので、
  Logger.getGlobal()を使うこと
 
 (非推奨になった理由 このグローバル定数は初期化時にデッドロックが発生する可能性がある)

②SimpleFormatterクラスのフォーマットをプロパティで記述できる
 (Java SE 6まではSimpleFormatterクラスのサブクラスを定義しないといけなかった)

しかし、(Java SE7 update17時点では)実装に問題があり、ログが出ないことがある。
logger.setLevel(Level.INFO)を呼び出すことで回避できるらしい。
が、コンソール出力はOKだが、ファイル出力はNGだった。

(例)ソースの一部
  Logger logger = Logger.getGlobal();   // Logger.GLOBAL_LOGGER_NAME)は非推奨
  logger.setLevel(Level.INFO); // バグ回避
  logger.info("info log");

0 件のコメント:

コメントを投稿