1 导入commons-logging.jar和log4j-1.2.15.jar包
2 在web项目下增加l og4j.properties
3 log4j.properties的内容如下
# debug config start
log4j.rootLogger=debug,stdout,log,errorlog,debuglog
# degug config over
###Console ###
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 %-5p (%F\:%L) - %m ...... %c%n
### Log ###
log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
log4j.appender.log.File =log/info/info.log
log4j.appender.log.Append = true
log4j.appender.log.Threshold = INFO
log4j.appender.log.DatePattern='.'yyyy-MM-dd
log4j.appender.log.layout = org.apache.log4j.PatternLayout
log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} (%F\:%L) [ %t ] %m%n
### Error ###
log4j.appender.errorlog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlog.File=log/error/error.log
log4j.appender.errorlog.Append = true
log4j.appender.errorlog.Threshold = ERROR
log4j.appender.errorlog.DatePattern='.'yyyy-MM-dd
log4j.appender.errorlog.layout = org.apache.log4j.PatternLayout
log4j.appender.errorlog.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} (%F\:%L) [ %t ] %m%n
### DEBUG ###
log4j.appender.debuglog = org.apache.log4j.DailyRollingFileAppender
log4j.appender.debuglog.File=log/debug/debug.log
log4j.appender.debuglog.Append = true
log4j.appender.debuglog.Threshold = DEBUG
log4j.appender.debuglog.DatePattern='.'yyyy-MM-dd
log4j.appender.debuglog.layout =org.apache.log4j.PatternLayout
log4j.appender.debuglog.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} (%F\:%L) [ %t ] %m%n
log4j.appender.stdout.Threshold=DEBUG
##forbidding some package output log
log4j.logger.org.apache=WARN
log4j.logger.org.apache.struts=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.springframework.beans=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.aspectj=WARN
log4j.logger.org.displaytag=WARN
log4j.logger.com.mchange=WARN
log4j.logger.com.opensymphony.oscache=WARN
log4j.logger.com.hm.eams=INFO
log4j.logger.com.hm.eams.basic.configuration.snmp.CapSnmpTrapDaemon=info
log4j.logger.com.hm.eams.basic.configuration.snmp.CapPollDeviceStates=info
#log4j.logger.com.hm.eams.basic.configuration.snmp.SnmpData=debug
log4j.logger.com.hm.web.websocket.test=debug
4 因为 Logger每次调用前需要传入一个class参数,所以自定义MyLooger4j类,用静态工厂模式实现Logger
package Factory.Log4j;
import mybatis.model.unit.ProcedureJunitTest;
import org.apache.log4j.Logger;
public class MyLogger4j {
private static Logger logger;
static{
System.out.println("here");
logger = Logger.getLogger(MyLogger4j.class);
}
public static void info(String info){
logger.info(info);
};
public static void error(String error){
logger.error(error);
};
public static void debug(String debug){
logger.debug(debug);
};
}
5 测试类
package mybatis.model.unit;
import Factory.Log4j.MyLogger4j;
public class Log4JTest {
public static void main(String[] args) {
MyLogger4j.debug("Log4JTest debug");
MyLogger4j.error("Log4JTest error");
MyLogger4j.info("Log4JTest info");
}
}
6 结果图
debug.log
error.log
info.log