自分が作成したすべてのログをテキスト ファイルに書き込みたい状況があります。
ログを生成するために java.util.logging.Logger API を使用しています。
私は試した:
private static Logger logger = Logger.getLogger(className.class.getName());
FileHandler fh;
fh = new FileHandler("C:/className.log");
logger.addHandler(fh);
しかし、ログはまだコンソールでのみ取得されます...
ベストアンサー1
このサンプルを試してみてください。私の場合はうまくいきました。
public static void main(String[] args) {
Logger logger = Logger.getLogger("MyLog");
FileHandler fh;
try {
// This block configure the logger with handler and formatter
fh = new FileHandler("C:/temp/test/MyLogFile.log");
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
// the following statement is used to log any messages
logger.info("My first log");
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
logger.info("Hi How r u?");
}
MyLogFile.logに出力を生成します
Apr 2, 2013 9:57:08 AM testing.MyLogger main
INFO: My first log
Apr 2, 2013 9:57:08 AM testing.MyLogger main
INFO: Hi How r u?
編集:
コンソールハンドラを削除するには、
logger.setUseParentHandlers(false);
ConsoleHandler は、すべてのロガーの派生元となる親ロガーに登録されているためです。