Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
<!--
 ~ This is free and unencumbered software released into the public domain.
 ~
 ~ Anyone is free to copy, modify, publish, use, compile, sell, or
 ~ distribute this software, either in source code form or as a compiled
 ~ binary, for any purpose, commercial or non-commercial, and by any
 ~ means.
 ~
 ~ In jurisdictions that recognize copyright laws, the author or authors
 ~ of this software dedicate any and all copyright interest in the
 ~ software to the public domain. We make this dedication for the benefit
 ~ of the public at large and to the detriment of our heirs and
 ~ successors. We intend this dedication to be an overt act of
 ~ relinquishment in perpetuity of all present and future rights to this
 ~ software under copyright law.
 ~
 ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 ~ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 ~ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 ~ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 ~ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 ~ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 ~ OTHER DEALINGS IN THE SOFTWARE.
 ~
 ~ For more information, please refer to <http://unlicense.org/>.
  -->

<included>
    <!-- Supports marking ALERT and AUDIT log lines specially. -->
    <!-- TODO: General property for listing special markers -->
    <!-- TODO: 07:10:50,982 |-INFO in ch.qos.logback.classic.boolex.JaninoEventEvaluator@1e13529a - Adding [return] prefix and a semicolon suffix. Expression becomes [return null != marker && ("ALERT".equals(marker.getName()) || "AUDIT".equals(marker.getName()));] -->
    <evaluator name="WITH_MARKER">
        <expression>null != marker &amp;&amp; ("ALERT".equals(marker.getName()) || "AUDIT".equals(marker.getName()))</expression>
    </evaluator>

    <!-- Alerts get special treatment, in addition to regular treatment. -->
    <appender name="alert" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.err</target>
        <withJansi>${logback.jansi:-false}</withJansi>
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
                <marker>ALERT</marker>
            </evaluator>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>${${logback.style:-standard}}</pattern>
        </encoder>
    </appender>

    <root level="warn">
        <appender-ref ref="alert"/>
    </root>

    <!-- Audits get special treatment, in addition to regular treatment. -->
    <appender name="audit" class="ch.qos.logback.core.ConsoleAppender">
        <target>System.out</target>
        <withJansi>${logback.jansi:-false}</withJansi>
        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
                <marker>AUDIT</marker>
            </evaluator>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>${${logback.style:-standard}}</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="audit"/>
    </root>

    <!--
    In addition to console logging, audits might log to a database, etc.
    Configure that in your own "included.xml" and include this file to pick up this configuration.
    -->
</included>
New to GrepCode? Check out our FAQ X