Logback从根目录中排除记录器

Jav*_*ude 7 java logging logback

我有一些打包,我想分开日志记录.

<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>
Run Code Online (Sandbox Code Playgroud)

所以我有FILE_A FILE_B和ROOT_FILE; ROOT_FILE包含由根记录器和AB和C记录器写入的信息.

如何从ROOT_FILE中排除FILE_A FILE_B信息?

或者换句话说,我如何从根记录器中排除日志数据(com.c com.b com.a)?

use*_*253 11

additivity标志com.acom.b记录器设置为false.

<logger name="${A}" level="DEBUG" additivity="false">
     <appender-ref ref="FILE_A"/>
</logger>
Run Code Online (Sandbox Code Playgroud)

现在记录在该记录器中的事件将不会传播到父记录器(在您的情况下为root logger).

文件