Daily Archives: April 30, 2015

log4j

log4j.properties

log4j.rootLogger=DEBUG, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=soap3.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <appender name="file" class="org.apache.log4j.RollingFileAppender">
        <param name="append" value="true" />
        <param name="maxFileSize" value="1MB" />
        <param name="maxBackupIndex" value="10" />
        <param name="file" value="test.log" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <appender name="mailAppender" class="org.apache.log4j.net.SMTPAppender">
        <param name="BufferSize" value="512" />
        <!--nowcom mail server configuration start-->
        <param name="SMTPHost" value="mail.xxx.com" />
        <param name="SMTPPort" value="25" />
        <param name="From" value="donotreply_log4j@xxx.com" />
        <param name="To" value="pli@xxx.com" />
        <!--nowcom mail server configuration end-->
        <!--gmail configuration start-->
        <!--<param name="SMTPProtocol" value="smtps" />-->
        <!--<param name="SMTPHost" value="smtp.gmail.com" />-->
        <!--<param name="SMTPPort" value="465" />-->
        <!--<param name="SMTPUsername" value="username" />-->
        <!--<param name="SMTPPassword" value="password" />-->
        <!--<param name="From" value="allen.lipeng47@gmail.com" />-->
        <!--<param name="To" value="allen.lipeng47@gmail.com" />-->
        <!--gmail configuration end-->
        <param name="Subject" value="Testing Log4j mail notification" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="warn" />
            <param name="LevelMax" value="fatal" />
        </filter>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="console" />
        <appender-ref ref="file" />
        <appender-ref ref="mailAppender" />
    </root>

</log4j:configuration>

Other LevelRangeFilter option could be:

<filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="error" />
    <param name="LevelMax" value="fatal" />
</filter>

Good article to explain slf4j, log4j, logback, jdklog, logsimple, nop. http://www.slf4j.org/manual.html