28

Netbeans は、慎重に Logger.getLogger(this.getClass().getName()).log(Level. [...] ステートメントを catch ブロックに振りかけます。ここで、それらすべてをファイル (およびコンソール) に向けたいと思います。

すべてのロギング チュートリアルなどは、特定のロガーをファイルに出力する方法を教えてくれますが、自動生成されたすべてのロギング ステートメントを修正するよりも良い方法があると思いますか? ある種のルートロガーなどのハンドラーを設定していますか?

4

2 に答える 2

40

起動時に次を追加するだけです

Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT);
Logger.getLogger("").addHandler(handler);

LOG_SIZEと には独自の値を指定できます。LOG_ROTATION_COUNT

必要に応じて、ログ レベルを調整する必要があります。

于 2009-04-15T13:59:46.017 に答える
2

ロガー構成ファイルでログが書き込まれている場所を定義する必要があります。たとえば、log4j を使用する場合、log4j.xml (または log4j.properties) ファイルにそのような情報が含まれます。

たとえば、ファイル (my-app.log) とコンソールに直接ログインする単純な log4j.xml ファイルを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="rolling" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="my-app.log" />
        <param name="DatePattern" value=".yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [IP=%X{ipAddress}] [user=%X{user}] %m%n" />
        </layout>
    </appender>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%C] [user=%X{user}] %m%n" />
        </layout>
    </appender>

    <root>
        <priority value="info" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling" />
    </root>

</log4j:configuration>
于 2009-04-15T13:46:26.453 に答える