Netbeansは思慮深くLogger.getLogger(this.getClass()。getName())。log(Level。[...]ステートメントをcatchブロックに振り分けます。ここで、それらすべてをファイル(およびコンソール)にポイントします。
すべてのロギングチュートリアルと私だけが特定のロガーをファイルに出力する方法を説明していますが、すべての自動生成されたロギングステートメントを修正するよりも良い方法があると思いますか?ある種のルートロガーなどのハンドラーを設定していますか?
起動時に以下を追加するだけです
Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT);
Logger.getLogger("").addHandler(handler);
LOG_SIZE
およびLOG_ROTATION_COUNT
には独自の値を指定できます
必要に応じて、ログレベルを調整する必要があります。
ログが書き込まれる場所をロガー構成ファイルで定義する必要があります。たとえば、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>