以下 Logback 配置中,其中一个记录器显式定义了它的附加程序,另一个则没有:
<configuration scan="true" scanPeriod="60 seconds">
<appender name="AMAZING_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>XXX</pattern>
</encoder>
</appender>
<logger name="org.springframework">
<level value="ERROR" />
</logger>
<logger name="com.company" additivity="false">
<level value="INFO" />
<appender-ref ref="AMAZING_APPENDER"/>
</logger>
</configuration>
Run Code Online (Sandbox Code Playgroud)
没有显式附加程序规范的记录器将使用什么附加程序(如果有的话)?
通过“没有明确规范的记录器”,我认为您指的是:<logger name="org.springframework">。
如果是这样,则该记录器没有可用的附加程序,并且 中的类发出的任何日志事件org.springframework(无论日志级别如何)都将被忽略。
如果您稍微调整 logback.xml 以添加以下内容:<configuration debug="true">您将看到这种性质的 WARN 事件......
记录器的上下文 [默认] 中没有附加程序 [...]
...当其中的类org.springframework发出错误级别的日志事件时发出。
如果您希望记录来自org.springframework命名空间(或者更一般地,来自除 之外的任何命名空间com.company)的事件,那么您应该添加一个<root>配置。例如:
<root level="INFO">
<appender-ref ref="AMAZING_APPENDER"/>
</root>
Run Code Online (Sandbox Code Playgroud)
如果您添加根并将其指向,AMAZING_APPENDER那么您可能应该设置为“ additive="false"on” logger name="com.company",否则从com.company名称空间记录的任何内容都将被记录两次。因此,也许您想要的配置是:
<root level="INFO">
<appender-ref ref="STANDARD_APPENDER"/>
</root>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3397 次 |
| 最近记录: |