java.util.logging.Logger を使用するときにログをテキストファイルに書き込む方法 質問する

java.util.logging.Logger を使用するときにログをテキストファイルに書き込む方法 質問する

自分が作成したすべてのログをテキスト ファイルに書き込みたい状況があります。

ログを生成するために 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 は、すべてのロガーの派生元となる親ロガーに登録されているためです。

おすすめ記事