不使用附加程序的 Log4J 记录器

ayu*_*hgp 5 java logging log4j

如果我有一个用于初始化记录器的 log4j.xml 文件,其中foo定义了 logger( ),但appender-ref其中没有任何标签,那么该记录器会做什么?如果什么都不做,对性能有影响吗?

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

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

  <logger name="foo">
    <level value="WARN"/>
  </logger>

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

</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)

Gil*_*ibi 7

从手册中:“给定记录器的每个启用的日志记录请求都将转发到该记录器中的所有附加程序以及层次结构中更高的附加程序”所以我猜它们将从根继承。


小智 0

该记录器正在添加警告日志,每当运行该记录器配置的控制台程序中出现警告时,就会生成警告日志,它会将其添加到日志中,是的,它会对性能产生影响,因为我们仅为调试添加日志。如果您在 xml 中看到,优先级值设置为调试,如果设置为发布,那么它将记录发布模式消息。影响将是巨大的,因为我们也应该记录错误。这就是记录器的全部目的..