我有一个带有ThreshholdFilter
级别信息的追加者:
<appender name="my_apender" class="com.my.apender.MyAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
和一个级别为INFO的记录器:
<logger name="whatever" level="INFO">
<appender-ref ref="my_appender"/>
</logger>
两个级别之间有什么区别?
答案 0 :(得分:4)
为记录器分配的级别是记录器使用的级别,而过滤器ch.qos.logback.classic.filter.ThresholdFilter
内分配的级别是此appender将记录内容的级别,更多details。< / p>
这是一个澄清事情的例子:
<!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
<appender name="my_apender1" class="com.my.apender.MyAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- deny all events with a level below DEBUG, that is TRACE-->
<appender name="my_apender2" class="com.my.apender.MyAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- event with level DEBUG will be handled only by my_apender2, and events with higher levels than DEBUG will be handled by both appenders -->
<logger name="whatever" level="DEBUG">
<appender-ref ref="my_appender1"/>
<appender-ref ref="my_appender2"/>
</logger>
答案 1 :(得分:1)
为清楚区分,让我们举个例子... ...假设您的记录器与两个附加程序关联,一个附加程序记录到myapp_all.log文件,另一个附加程序记录到myapp_error.log。现在,如果只想将ERROR级别的日志记录到myapp_error.log,则可以使用追加过滤器,而不是记录器过滤器。由于单个类通常与单个记录器相关联,因此您不能使用记录器级别来分叉ERROR级别流。