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); }; }
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"); } }
debug.log
error.log
info.log