gpt4 book ai didi

java - 为什么 EvaluatorFilter 不过滤不匹配的语句?

转载 作者:行者123 更新时间:2023-11-30 03:41:54 28 4
gpt4 key购买 nike

我们正在使用 TomEE、SLF4J 和 Logback。除了标准输出之外,我们的目标是将某些日志语句记录到数据库中(由标记确定)。这是我们的日志配置:

<?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 仍会记录到数据库。为什么?

最佳答案

过滤器没有按预期工作,因为我没有设置“onMatch”和“onMismatch”标签。这是有效的解决方案:

<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>LOGDATABASE</marker>
</evaluator>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>

关于java - 为什么 EvaluatorFilter 不过滤不匹配的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656659/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com