1
我们使用TomEE,SLF4J和Logback。除了stdout之外,我们的目标是将某些日志记录记录到数据库中(由标记确定)。这里是我们的logback配置:为什么不是EvaluatorFilter过滤不匹配的语句?
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>...</encoder>
</appender>
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>oracle.jdbc.OracleDriver</driverClass>
<url>...</url>
</connectionSource>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>LOGDATABASE</marker>
</evaluator>
</filter>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="DB" />
</root>
</configuration>
但是,虽然标记未设置,DBAppender会记录到数据库。为什么?