2009-04-15 34 views
27

Netbeans若有所思地將Logger.getLogger(this.getClass()。getName()).log(Level。[012]語句放入catch塊中。把它們全部指向一個文件(和控制檯)如何將java Logger默認輸出到文件

每個日誌記錄教程和只有我告訴如何獲得一個特定的記錄器輸出到一個文件,但我認爲有一個更好的辦法比固定每個自動生成日誌語句?爲某種根記錄器設置處理程序?

+2

IDE正在生成catch塊以「吃」異常?卑鄙!這解釋了很多。 – erickson 2009-04-15 17:12:39

回答

39

我只是添加在啓動以下

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

您可以LOG_SIZELOG_ROTATION_COUNT

您可能需要調整日誌記錄級別,以適應指定自己的值。

2

您必須定義記錄器配置文件中日誌寫入的位置 例如,如果使用log4j,則log4j.xml(或log4j.properties)文件將包含這些信息。

例如,這裏是一個直接登錄到一個文件中(我-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> 
+4

我認爲從標籤提問者使用java.util.logging中的類而不是log4j – 2009-04-15 13:48:29

+2

他不使用log4j:netbeans爲java.util.logging生成代碼 – 2009-04-15 13:49:21

相關問題