【问题标题】:Why are Logback metrics increased for filtered logging events?为什么过滤的日志记录事件的 Logback 指标会增加?
【发布时间】:2023-02-22 07:13:49
【问题描述】:

我有一个配置了 Logback Evaluator Filter 的应用程序,使用 JaninoEventEvaluator 从 Hibernate 中排除某些日志消息:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
                <expression>return logger.equals("org.hibernate.engine.jdbc.spi.SqlExceptionHelper") &amp;&amp;
                    (message.contains("duplicate key value violates unique constraint \"the_constraint_name\"") ||
                    message.contains("SQLState: 23505"));</expression>
            </evaluator>
            <OnMismatch>NEUTRAL</OnMismatch>
            <OnMatch>DENY</OnMatch>
        </filter>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>


    <logger name="com.mypackage" level="DEBUG" additivity="false">
        <appender-ref ref="CONSOLE"/>
    </logger>


</configuration>

这工作正常并且未记录 duplicate key violates unique constraint 消息。

问题是每次发生这种情况时,Logback 指标 logback.events 都会增加,因此根据应用程序指标,它看起来无论如何都发生了错误。

Reson 似乎在 io.micrometer.core.instrument.binder.logging.MetricsTurboFilter 中,这些计数器是 defined。如果我正确阅读了 Logback 文档,Turbo 过滤器被称为“...每次发出日志记录请求”:https://logback.qos.ch/manual/filters.html#TurboFilter

所以我的问题是,如果发生此错误,是否有任何方法可以配置 Micrometer/Spring Boot 不增加此错误指标?

【问题讨论】:

    标签: java spring-boot logback micrometer


    【解决方案1】:

    我认为这类似于Spring Boot Actuator Logback Metric with custom Filter

    你能在那里检查my answer吗?如果你不能基于它解决这个问题,你能在 GitHub 上打开一个问题吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2015-01-09
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多