2017-06-16 66 views
0

我在我的java應用程序中使用log4j來記錄消息。 log4j-1.2.17.jar是使用的jar文件。以下是日誌文件。無法在文件中打印調試語句

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'> 

     <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
      <param name="Target" value="System.out" /> 
      <param name="Threshold" value="debug" /> 
      <layout class="org.apache.log4j.PatternLayout"> 
       <param name="ConversionPattern" value="%d %-5p %c{1}:%L %m %n" /> 
      </layout> 
     </appender> 

     <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
      <param name="Threshold" value="INFO" /> 
      <param name="Threshold" value="debug" /> 
      <param name="maxFileSize" value="10MB" /> 
      <param name="maxBackupIndex" value="10" /> 
      <param name="file" value="D/logs/projectLog.log"/> 
      <param name="append" value="true" /> 
      <layout class="org.apache.log4j.PatternLayout"> 
       <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L %m %n" /> 
      </layout> 
     </appender> 

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

</log4j:configuration> 

我在我的應用程序中使用上面的日誌文件。日誌文件已成功生成,但在日誌文件中,調試消息沒有得到打印。

在我的java類中,下面是我所包含的語句。

LOGGER.info("In TestMVCController, logger info"); 
System.out.println("is debug enabled" + LOGGER.isDebugEnabled());//always false even when server is started in debug mode 
LOGGER.debug("In TestMVCController, logger debug"); 
LOGGER.error("In TestMVCController, logger errror"); 

在我的日誌文件中,我只能看到正在打印的信息和錯誤消息。在哪種情況下打印調試語句,以及如何使日誌語句打印調試語句?任何建議都會有所幫助。

+0

檢查您的logging.properties文件。在那裏你可以設置日誌級別爲DEBUG。 –

+0

在上面的fileAppender xml blurb中,「閾值」參數設置了兩次。一個將其設置爲INFO,另一個進行調試。也許「信息」重寫「調試」? –

+0

@MonicaGranbois - 這是我的試用版,最初我只用過一次,stil我看不到打印在日誌文件中的調試信息。 – Ran

回答

0

變化從「信息」向「調試」根的優先級值:

<root> 
    <priority value="debug"></priority> 
    <appender-ref ref="fileAppender" /> 
</root> 

這將配置根記錄到的水平「DEBUG」或更高的附加器「fileAppender」發送日誌消息。然後,「fileAppender」可以設置它想要記錄的閾值(DEBUG,INFO,WARNING等)。

注意:appender的「閾值」參數是可選的。如果你忽略它,appender將登錄到根記錄器定義的級別。如果有多個appender,則可以使用「閾值」。例如:控制檯appender的DEBUG和文件appender的INFO。