[logback-user] Problems with jaino evaluator

Tony Trinh tony19 at gmail.com
Fri Jun 22 22:10:06 CEST 2012


On Wed, Jun 20, 2012 at 1:34 PM, George, Kenneth V [NTK] <
Kenneth.V.George at sprint.com> wrote:

>  Good afternoon.
>
>
>
> I have a situation where I need to log information to 2 separate files,
> but under different conditions, for the same context/class files.
>
>
>
> Basically, I have 2 files: 1 log, 1 alarm_log.
>
>
>
> I need to set the level for reporting to INFO, but only log WARN/ERROR
> messages to alarm_log when a MDC value of “SEND_ALARM” is set.  I have
> tried to place a <filter> of type
> “ch.qos.logback.core.filter.EvaluatorFilter” and cannot seem to get it to
> work, messages of Level INFO show-up in the alarm_log.
>
>
>
> Can this even be done (maybe I am just using it wrong)?  Here is the
> section of my logback.xml file specifying the appender:
>
>
>
>     <appender name="ALARM"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
>
>         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
>
>             <evaluator>
>
>                 <expression>
>
>                     if (mdc == null || mdc.get("SEND_ALARM") == null)
>

No need to check for (mdc == null) because it's guaranteed to not be null
in versions 0.9.30 and later.


>                         return false;
>
>
>
>                      return true;
>
>                 </expression>
>
>             </evaluator>
>
>         </filter>
>
>         <file>logs/alarms.log</file>
>
>         <rollingPolicy
> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
>
>             <!-- daily rollover -->
>
>
>             <fileNamePattern>logs/archive/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
>
>
>
>             <!-- keep 30 days' worth of history -->
>
>             <maxHistory>30</maxHistory>
>
>         </rollingPolicy>
>
>
>
>         <encoder>
>
>             <pattern>%date{MMM dd, yyyy hh:mm:ss} %-5level %msg%n</pattern>
>
>         </encoder>
>
>     </appender>
>
>
>

Try this:

<appender name="ALARM"
class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.core.filter.JaninoEvaluatorFilter">

            <evaluator>
                <expression>return (mdc.get("SEND_ALARM") != null) &&
(level > INFO);</expression>
            </evaluator>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
        <file>logs/alarms.log</file>
        <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->

<fileNamePattern>logs/archive/logFile.%d{yyyy-MM-dd}.log</fileNamePattern>

            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%date{MMM dd, yyyy hh:mm:ss} %-5level %msg%n</pattern>
        </encoder>
    </appender>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20120622/93438e86/attachment.html>


More information about the Logback-user mailing list