Logging 为什么更改根记录器对其他记录器没有影响?
下面是我在Logging 为什么更改根记录器对其他记录器没有影响?,logging,log4j,Logging,Log4j,下面是我在spring应用程序中使用的log4j.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="PRIMARY" class="org.
spring
应用程序中使用的log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="PRIMARY" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="/var/log/myappcontroller-%d{yyyy-MM-dd}.log"/>
</rollingPolicy>
<layout class="org.apache.log4j.EnhancedPatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %d %-5p %c - %m%n"/>
</layout>
</appender>
<logger name="com.myapp.usercontroller" additivity="false">
<level value=“INFO"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="PRIMARY"/>
</logger>
<root>
<priority value="INFO”/> //changing this to DEBUG
<appender-ref ref="PRIMARY"/>
<appender-ref ref="CONSOLE"/>
</root>
为什么会这样?我尚未配置此记录器。但是更改
会直接影响此记录器
感谢您的解释您对名为
com.myapp.usercontroller
的记录器的显式定义包含一个阈值级别参数,该参数将覆盖根记录器本应继承的值。当您将根记录器的优先级从INFO更改为DEBUG时,这将影响每个记录器,但具有显式配置值的记录器除外。这就是为什么您可以在org.apache.http.headers
中看到调试日志,但不能看到控制器的调试日志
请注意,log4jxml令人困惑,因为它对根记录器使用
优先级
,而对命名记录器使用级别
,即使它们都引用日志记录阈值。您对名为com.myapp.usercontroller
的记录器的显式定义包含一个阈值级别参数,该参数覆盖了根记录器本应继承的值。当您将根记录器的优先级从INFO更改为DEBUG时,这将影响每个记录器,但具有显式配置值的记录器除外。这就是为什么您可以在org.apache.http.headers
中看到调试日志,但不能看到控制器的调试日志
请注意,log4jxml令人困惑,因为它对根记录器使用
优先级
,而对命名记录器使用级别
,即使它们都引用日志记录阈值。您对名为com.myapp.usercontroller
的记录器的显式定义包含一个阈值级别参数,该参数覆盖了根记录器本应继承的值。当您将根记录器的优先级从INFO更改为DEBUG时,这将影响每个记录器,但具有显式配置值的记录器除外。这就是为什么您可以在org.apache.http.headers
中看到调试日志,但不能看到控制器的调试日志
请注意,log4jxml令人困惑,因为它对根记录器使用
优先级
,而对命名记录器使用级别
,即使它们都引用日志记录阈值。您对名为com.myapp.usercontroller
的记录器的显式定义包含一个阈值级别参数,该参数覆盖了根记录器本应继承的值。当您将根记录器的优先级从INFO更改为DEBUG时,这将影响每个记录器,但具有显式配置值的记录器除外。这就是为什么您可以在org.apache.http.headers
中看到调试日志,但不能看到控制器的调试日志
请注意,log4j xml令人困惑,因为它对根记录器使用
优先级
,而对命名记录器使用级别
,即使它们都引用日志记录阈值。所以com.myapp.usercontroller
的调试级别适用于com.myapp.usercontroller.xxx
等正确吗?这是正确的。点充当层次分隔符。因此com.myapp.usercontroller
的调试级别适用于com.myapp.usercontroller.xxx
等是否正确?这是正确的。点充当层次分隔符。因此com.myapp.usercontroller
的调试级别适用于com.myapp.usercontroller.xxx
等是否正确?这是正确的。点充当层次分隔符。因此com.myapp.usercontroller
的调试级别适用于com.myapp.usercontroller.xxx
等是否正确?这是正确的。这些点充当层次分隔符。
DEBUG org.apache.http.headers - http-outgoing-0 >> POST /token HTTP/1.1