程序加载制定日志文件
public static final String log4j = "log4j.xml";
/**
* @declare 加载log4j
* @throws IOException
* @author cphmvp
*/
private static void loadLog4j() throws IOException {
Properties p = new Properties();
InputStream is = null;
is = ClassLoader.getSystemResourceAsStream(log4j);
p.load(is);
PropertyConfigurator.configure(p);// 路径
is.close();
}
较为简单的 :log4j.properties 日志区分不细
#log4j.rootLogger =DEBUG,Console
log4j.rootLogger =info,LogFile,Console # Output the log info to the Java Console
log4j.appender.Console = org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target = System.out
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Threshold = INFO
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} %-5p %x -%m%n # Save the log info to the log file one day.
log4j.appender.LogFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFile.File = ./logs/error.log
log4j.appender.LogFile.Append = true
log4j.appender.LogFile.ImmediateFlush = true
log4j.appender.LogFile.Threshold = INFO
log4j.appender.LogFile.Encoding = UTF-8
log4j.appender.LogFile.layout = org.apache.log4j.PatternLayout
log4j.appender.LogFile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} -[%-t] %-5p %-4c %x -%m%n log4j.logger.httpclient.wire.header=ERROR
log4j.logger.httpclient.wire.content=ERROR
log4j.logger.org.apache.commons.httpclient = ERROR
# Set framework log level is debug
log4j.logger.java.sql=ERROR
#log4j.logger.org.springframework.jdbc.core=DEBUG
#log4j.logger.com.opensymphony.oscache.base=DEBUG
org.apache.http.client.protocol=ERROR
# log4j.logger.org.springframework.security=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
较为完善的: 区分级别,可根据不同组织制定不同日志输出的 log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d{yyyy.MM.dd HH:mm:ss} %5p - %m%n" />
</layout>
</appender>
<!--***********************************crawler日志 ********************************** -->
<!--****INFO级别***** -->
<appender name="crawler_infoLog" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./logs/crawler_info.log" />
<param name="maxFileSize" value="2000KB" />
<param name="maxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d{yyyy.MM.dd HH:mm:ss} %5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="INFO" />
<param name="LevelMin" value="INFO" />
</filter>
</appender> <!--****WARN级别***** -->
<appender name="crawler_warnLog" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./logs/crawler_warn.log" />
<param name="maxFileSize" value="2000KB" />
<param name="maxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d{yyyy.MM.dd HH:mm:ss} %5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="WARN" />
<param name="LevelMin" value="WARN" />
</filter>
</appender>
<!--****REEOR级别***** -->
<appender name="crawler_errorLog" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./logs/crawler_error.log" />
<param name="maxFileSize" value="2000KB" />
<param name="maxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d{yyyy.MM.dd HH:mm:ss} %5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="ERROR" />
<param name="LevelMin" value="ERROR" />
</filter>
</appender>
<!--****FATAL级别***** -->
<appender name="crawler_fatalLog" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./logs/crawler_fatal.log" />
<param name="maxFileSize" value="2000KB" />
<param name="maxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %d{yyyy.MM.dd HH:mm:ss} %5p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="FATAL" />
<param name="LevelMin" value="FATAL" />
</filter>
</appender> <!-- 记录该包下所有日志 -->
<logger name="org.apache">
<level value="INFO" />
<appender-ref ref="stdout" />
<appender-ref ref="crawler_infoLog" />
<appender-ref ref="crawler_warnLog" />
<appender-ref ref="crawler_errorLog" />
<appender-ref ref="crawler_fatalLog" />
</logger>
<logger name="com.alibaba.druid">
<level value="INFO" />
<appender-ref ref="stdout" />
<appender-ref ref="crawler_infoLog" />
<appender-ref ref="crawler_warnLog" />
<appender-ref ref="crawler_errorLog" />
<appender-ref ref="crawler_fatalLog" />
</logger> <logger name="com.loongtao.dmscrawler">
<level value="INFO" />
<appender-ref ref="stdout" />
<appender-ref ref="crawler_infoLog" />
<appender-ref ref="crawler_warnLog" />
<appender-ref ref="crawler_errorLog" />
<appender-ref ref="crawler_fatalLog" />
</logger> </log4j:configuration>
记录日志写法 ,error 级别的 logger.error(e.getMessage(),e); 【能显示详尽的信息,符合sona的语法检查 】