【问题标题】:Logback filter by class nameLogback 按类名过滤
【发布时间】:2022-07-13 13:12:35
【问题描述】:

我正在尝试在 Logback 中创建一个类名过滤器,希望从某些包名中排除日志行。

这是我的 logback-spring.xml。在这个例子中,我试图从可能来自 Undertow 的 stacktrack 中排除每一行。

<configuration scan="true" scanPeriod="30 seconds" debug="true">

  <property name="DEFAULT_PATTERN"
    value="[%thread][%-5level][%d{yyyy-MM-dd HH:mm:ss.SSS}][%logger{40}] - %msg%n"/>

  <appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
      <evaluators>
        <evaluator>
          <expression>logger.equals("io.undertow")</expression>
        </evaluator>
        <OnMismatch>NEUTRAL</OnMismatch>
        <OnMatch>DENY</OnMatch>
      </evaluators>
    </filter>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>${DEFAULT_PATTERN}</Pattern>
    </layout>
  </appender>
  <root level="INFO">
    <appender-ref ref="ConsoleAppender"/>
  </root>

</configuration>

但是,当我启动 Spring Boot 应用程序时,它会自行停止。

将标志 debug=true 放入 XML 中,我收到以下消息:

16:44:37,859 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 30 seconds
16:44:37,867 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
16:44:37,867 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [ConsoleAppender]
16:44:37,878 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@8:19 - no applicable action for [evaluators], current ElementPath  is [[configuration][appender][filter][evaluators]]
16:44:37,879 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.boolex.JaninoEventEvaluator] for [evaluator] property
16:44:37,886 |-WARN in Logger[org.springframework.boot.context.logging.ClasspathLoggingApplicationListener] - No appenders present in context [default] for logger [org.springframework.boot.context.logging.ClasspathLoggingApplicationListener].
Disconnected from the target VM, address: '127.0.0.1:43411', transport: 'socket'

我在那里做错了什么?如果我禁用过滤器,应用程序将正常启动。

【问题讨论】:

    标签: spring-boot logging logback


    【解决方案1】:

    正如错误所说,不要使用标签“评估者”

        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
                <evaluator>
                  <expression>logger.equals("io.undertow")</expression>
                </evaluator>
                <OnMismatch>NEUTRAL</OnMismatch>
                <OnMatch>DENY</OnMatch>
        </filter>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-07
      • 2013-05-30
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2021-10-12
      相关资源
      最近更新 更多