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