2009-04-15 18 views
27

Netbeansは、Logger.getLogger(this.getClass()。getName()).log(Level。[...] catchブロックへのステートメントJavaロガーの出力をデフォルトでファイルに取得する方法

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

+2

IDEは例外を「食べる」キャッチブロックを生成していますか?卑劣な!これはたくさん説明します。 – erickson

答えて

39

が、私はちょうど、起動時に以下を追加します

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

あなたは、あなたが合うようにロギングレベルを調整する必要があるかもしれませんLOG_SIZELOG_ROTATION_COUNT

ための独自の値を指定することができます。

+0

ありがとうございます。これは私が後にしたもののように見えます。 – Bloodboiler

+1

これを行うと、私は "空白を逆参照できません" – Dan

2

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

は、ここでは簡単なlog4j.xmlファイル(私の-app.log)に直接記録するファイルとコンソールにあります。

<?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> 
+4

私はタグから質問者がlog4jではなくjava.util.loggingのクラスを使用していると思います –

+2

彼はlog4jを使用していません:netbeansはjava.util.loggingのコードを生成します –

関連する問題