[logback-user] Filtering "unknown" mdc discriminator events

Fred Toth ftoth at synernet.com
Sat Sep 22 18:21:30 CEST 2012


I should add: The current return values of true and false are reversed 
only for testing. Either way I get the same thing.

Thanks,

Fred

On 9/22/2012 12:16 PM, Fred Toth wrote:
> Hi,
>
> This has been written about before in this list, and I thought it 
> would be easy, but I'm getting nowhere. Can anyone suggest what I'm 
> doing wrong? I can confirm that my filter code is running (I see the 
> print statements) but no matter what I return, I still end up with a 
> log like "unknown/batchqc-<timestamp>" containing plenty of log data.
>
> I would like to eliminate these logs completely, and write logs using 
> this sifter only when articlePath is set.
>
> The status listener is reporting:
>
> 12:03:35,652 |-ERROR in 
> ch.qos.logback.core.joran.spi.Interpreter at 25:37 - no applicable action 
> for [OnMismatch], current pattern is 
> [[configuration][appender][filter][evaluator][OnMismatch]]
> 12:03:35,652 |-ERROR in 
> ch.qos.logback.core.joran.spi.Interpreter at 26:34 - no applicable action 
> for [OnMatch], current pattern is 
> [[configuration][appender][filter][evaluator][OnMatch]]
>
> What am I missing?
>
> Config:
>
> <configuration>
>
>     <statusListener 
> class="ch.qos.logback.core.status.OnConsoleStatusListener"/>
>
>     <timestamp key="bySecond" datePattern="yyyy-MM-dd-HH-mm-ss" />
>     <timestamp key="byDate" datePattern="yyyy-MM-dd" />
>
>     <appender name="ARTICLESIFT" 
> class="ch.qos.logback.classic.sift.SiftingAppender">
>         <discriminator>
>             <key>articlePath</key>
>             <defaultValue>unknown</defaultValue>
>         </discriminator>
>         <sift>
>             <appender name="ARTICLESIFT-APPENDER" 
> class="ch.qos.logback.core.FileAppender">
>                 <filter 
> class="ch.qos.logback.core.filter.EvaluatorFilter">
>                     <evaluator 
> class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
>                         <expression>
> System.out.println("MDC: " + mdc + " " + mdc.get("articlePath"));
> if (mdc == null
>     || mdc.get("articlePath") == null
>     || ((String)mdc.get("articlePath")).contains("unknown"))
>         return false;
> return true;
>                         </expression>
> <OnMismatch>NEUTRAL</OnMismatch>
>                         <OnMatch>DENY</OnMatch>
>                     </evaluator>
>                 </filter>
> <file>${articlePath}/batchqc-${bySecond}.log</file>
>                 <append>false</append>
>                 <encoder 
> class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
>                     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level 
> %logger{0} - %msg%n
>                     </pattern>
>                 </encoder>
>             </appender>
>         </sift>
>     </appender>
>
>     <appender name="TSFILE" class="ch.qos.logback.core.FileAppender">
>         <file>logs/batchqc-${byDate}.log</file>
>         <append>true</append>
>         <encoder>
>             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{0} - 
> %msg%n</pattern>
>         </encoder>
>     </appender>
>
>     <root level="info">
>         <appender-ref ref="TSFILE" />
>         <appender-ref ref="ARTICLESIFT" />
>     </root>
> </configuration>
>
> Thanks,
>
> Fred
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user
>



More information about the Logback-user mailing list