Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用log4j修剪日志输出_Java_Logging_Log4j - Fatal编程技术网

Java 使用log4j修剪日志输出

Java 使用log4j修剪日志输出,java,logging,log4j,Java,Logging,Log4j,如何使用log4j实现以下功能: 仅记录来自特定类别的事件,即com.example.app,但不记录com.example.app.context或com.example.dao 记录级别为WARN或更高级别的所有事件 您需要按顺序设置分类过滤器,将附加器阈值设置为更高的过滤器限制 <appender name="LOG_FILE" class="org.apache.log4j.FileAppender"> <param name="File" valu

如何使用log4j实现以下功能:

  • 仅记录来自特定类别的事件,即
    com.example.app
    ,但不记录
    com.example.app.context
    com.example.dao
  • 记录级别为
    WARN
    或更高级别的所有事件

您需要按顺序设置分类过滤器,将附加器阈值设置为更高的过滤器限制

   <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>

您需要按顺序设置类别过滤器,将附加器阈值设置为更高的过滤器限制

   <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
要从其子包中删除日志记录,请将其日志级别设置为error或fatal:

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

编辑:注释掉了
app.context
行,以便它从其父包继承调试级别。

在log4j.properties文件中,您可以在rootLogger上设置应用程序的全局日志级别:

log4j.rootLogger=DEBUG, APPENDER
您可以使用WARN、INFO、ERROR和FATAL代替DEBUG

可以为具有子包的包指定其自己的日志级别,如下所示:

log4j.logger.com.example.app=DEBUG
要从其子包中删除日志记录,请将其日志级别设置为error或fatal:

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

编辑:注释掉了
app.context
行,以便它从其父包继承调试级别。

我认为要获得海报请求的行为,您将com.example.app设置为警告,com.example.app.context设置为关闭。我认为没有办法打开com.example.app和关闭每个com.example.app.*除非明确地重复每个子包。要关闭子包(级别低于父级,还必须将addition设置为false)。感谢您的回答。但是,如果这样做,我将丢失
com.example.app.context
文件中的
WARN
日志记录,我希望看到该文件。我认为要获得海报请求的行为,您将com.example.app设置为WARN,com.example.app.context设置为OFF。我认为没有办法打开com.example.app和关闭每个com.example.app.*除非明确地重复每个子包。要关闭子包(级别低于父级,还必须将addition设置为false)。感谢您的回答。但是,如果这样做,我将丢失
com.example.app.context
文件中的
WARN
日志记录,我想查看该文件。谢谢您的回答。但是,如果使用这种方法,我将丢失
com.example.app.context
文件中的
错误记录,我想查看您是否希望
app.context
app
继承日志级别,只是不要在属性文件中为
app.context
添加带有新日志级别的行。你能编辑一下你的问题并详细说明一下你到底想要什么吗?谢谢你的回答。但是,如果使用这种方法,我将丢失
com.example.app.context
文件中的
错误记录,我想查看您是否希望
app.context
app
继承日志级别,只是不要在属性文件中为
app.context
添加带有新日志级别的行。你能编辑一下你的问题,详细说明一下你到底想要什么吗?