Logback 从 root 中排除记录器
Logback exclude logger from root
我打包了几个,想分开记录。
<property name="A" value="com.a"/>
<property name="B" value="com.b"/>
<property name="C" value="com.c"/>
<logger name="${A}" level="DEBUG">
<appender-ref ref="FILE_A"/>
</logger>
<logger name="${B}" level="DEBUG">
<appender-ref ref="FILE_B"/>
</logger>
<logger name="${C}" level="DEBUG">
<appender-ref ref="FILE_B"/> <!-- yes B -->
</logger>
<root level="DEBUG">
<-- used for other logs too ->
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROOT_FILE"/>
</root>
所以我有 FILE_A FILE_B 和 ROOT_FILE;
ROOT_FILE 包含根记录器以及 A B 和 C 记录器写入的信息。
如何从 ROOT_FILE 中排除 FILE_A FILE_B 信息?
或者换句话说,我如何从根记录器中排除日志数据(com.c com.b com.a)?
将 com.a
和 com.b
记录器的 additivity
标志设置为 false。
<logger name="${A}" level="DEBUG" additivity="false">
<appender-ref ref="FILE_A"/>
</logger>
现在记录在该记录器中的事件不会传播到父记录器(在您的情况下为根记录器)。
我打包了几个,想分开记录。
<property name="A" value="com.a"/>
<property name="B" value="com.b"/>
<property name="C" value="com.c"/>
<logger name="${A}" level="DEBUG">
<appender-ref ref="FILE_A"/>
</logger>
<logger name="${B}" level="DEBUG">
<appender-ref ref="FILE_B"/>
</logger>
<logger name="${C}" level="DEBUG">
<appender-ref ref="FILE_B"/> <!-- yes B -->
</logger>
<root level="DEBUG">
<-- used for other logs too ->
<appender-ref ref="STDOUT"/>
<appender-ref ref="ROOT_FILE"/>
</root>
所以我有 FILE_A FILE_B 和 ROOT_FILE; ROOT_FILE 包含根记录器以及 A B 和 C 记录器写入的信息。
如何从 ROOT_FILE 中排除 FILE_A FILE_B 信息?
或者换句话说,我如何从根记录器中排除日志数据(com.c com.b com.a)?
将 com.a
和 com.b
记录器的 additivity
标志设置为 false。
<logger name="${A}" level="DEBUG" additivity="false">
<appender-ref ref="FILE_A"/>
</logger>
现在记录在该记录器中的事件不会传播到父记录器(在您的情况下为根记录器)。