【发布时间】:2019-06-12 20:27:30
【问题描述】:
我正在为具有相同日志级别的两个不同文件夹中的日志消息编写代码。我面临的问题是下面的代码无法打印有条件的日志消息(当它变为 else 时)。主要是 else部分不工作。
简单来说,如何使用两个不同的附加程序根据 If else 条件将日志写入两个不同的文件夹。
代码是:
<if condition='property("type").contains("DEV")'>
<then>
<appender-ref ref="FILE-ENGINE" />
</then>
<else>
<appnder-ref ref = "FILE-UI" />
</else>
</if>
整个配置文件是:
<configuration>
<property name="USER_HOME" value="D:/Log1/" />
<property name="USER_HOME2" value="D:/log2/" />
<if condition='property("type").contains("DEV")'>
<then>
<appender-ref ref="FILE-ENGINE" />
</then>
<else>
<appnder-ref ref = "FILE-UI" />
</else>
</if>
<appender name="FILE-ENGINE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/${log.name}.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} -
%msg%n</pattern>
</encoder>
</appender>
<appender name="FILE-UI" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME2}/DEBUG.log</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} -
%msg%n</pattern>
</encoder>
</appender>
<appender name="FILE-ENGINE-ERROR" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/${log.name}.error</file>
<append>true</append>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -
%msg%n</pattern>
</encoder>
</appender>
<logger name="com.code" level="debug" additivity="false">
<appender-ref ref="FILE-ENGINE" />
<appender-ref ref="FILE-UI" />
</logger>
<root level="Error">
<appender-ref ref="FILE-ENGINE-ERROR" />
</root>
</configuration>
请帮助我如何在 else 条件下编写日志。提前致谢。
【问题讨论】:
-
这能回答你的问题吗? logback conditional logging