簡體   English   中英

使用log4j修剪日志輸出

[英]Trimming down log output using log4j

如何使用log4j實現以下功能:

  • 僅記錄來自特定類別的事件,即com.example.app但不記錄com.example.app.contextcom.example.dao ;
  • 記錄WARN或更高級別的所有事件。

您需要按順序設置catergory過濾器,並將appender閾值設置為更高的過濾器限制。

   <appender name="LOG_FILE" class="org.apache.log4j.FileAppender">
      <param name="File" value="log_file.log" />
      <param name="Threshold" value="WARN"/>

      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
      </layout>
   </appender>

   <category name="com.example.app">
         <priority value="DEBUG" />
         <appender-ref ref="LOG_FILE" />
   </category>

   <category name="com.example.app.context">
         <priority value="WARN" />
         <appender-ref ref="LOG_FILE" />
    </category>

在log4j.properties文件中,您可以在rootLogger上設置應用程序的全局日志級別:

log4j.rootLogger=DEBUG, APPENDER

您可以使用WARN,INFO,ERROR和FATAL代替DEBUG。

包含子包的包可以給它自己的日志級別,如下所示:

log4j.logger.com.example.app=DEBUG

要從其子包中刪除日志記錄,請將其loglevel設置為error或fatal:

#log4j.logger.com.example.app.context=ERROR
log4j.logger.com.example.app.dao=ERROR

編輯:注釋掉app.context行,以便從其父包繼承DEBUG級別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM