2017-09-14 150 views
1

我有Spring Boot 2.0.0.M3版本和logback 1.2.3和明年的配置文件:春天啓動的logback與過濾器配置不工作

<configuration debug="true"> 
    <springProfile name="local"> 
      <springProperty name="springAppName" source="spring.application.name"/> 
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%green(%d{yyyy-MM-dd HH:mm:ss}) [${springAppName},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] %highlight(%-5level) %cyan(%logger{15}) %m%n</pattern> 
      <charset>utf8</charset> 
     </encoder> 
     <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> 
      <evaluator> 
       <expression>logger.contains("test")</expression> 
      </evaluator> 
      <onMatch>DENY</onMatch> 
     </filter> 
    </appender> 
    <root level="info"> 
     <appender-ref ref="CONSOLE"/> 
    </root> 
    </springProfile> 
</configuration> 

但每當我開始我的應用程序失敗。我有下一個日誌:

11:35:16,891 |-WARN in Logger[org.springframework.core.env.PropertySourcesPropertyResolver] - No appenders present in context [default] for logger [org.springframework.core.env.PropertySourcesPropertyResolver]. 
    11:35:16,891 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 
    11:35:16,891 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE] 
    11:35:16,896 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
    11:35:16,930 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.boolex.JaninoEventEvaluator] for [evaluator] property 
    Process finished with exit code 1 

我猜EvaluatorFilter有什麼問題我應該選擇特定的一個併爲它添加一些額外的依賴關係?

+0

如果去掉過濾器節點都在一起會發生什麼退出了同樣的問題? – Hasson

+0

@Hasson實際上它的工作原理,但我需要篩選幾個日誌 –

+0

爲什麼不使用包名稱過濾器?或者你需要按表情過濾? – Hasson

回答

1

它是你使用的表達式嗎?試試這個...

<filter class="ch.qos.logback.core.filter.EvaluatorFilter">  
    <evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator --> 
    <expression>return formattedMessage.contains("test");</expression> 
    </evaluator> 
    <OnMismatch>NEUTRAL</OnMismatch> 
    <OnMatch>DENY</OnMatch> 
</filter> 

這個計算器過濾器將刪除所有其消息包含字符串「test」的記錄事件。

+1

它不適用於我,日誌中的結果相同 –

+0

您可能需要將「記錄器」更改爲「formattedMessage」那工作?那麼你期望測試是在哪裏?它是否在記錄器名稱中?或在實際的消息?我已經改變了答案 – Hasson

+0

不,結果相同 –

0

是否有必要的logback依賴關係?

請參閱Logback dependencies page。尤其是,要獲得JaninoEventEvaluator才能運行,則需要Janino及其依賴關係commons-compiler

我看到,當這兩個是不是在classpath中,應用程序只是默默的退出代碼1.

相關問題