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
Logging 为什么更改根记录器对其他记录器没有影响?_Logging_Log4j - Fatal编程技术网

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