log4j就是按级别输出日志,输出到不同的地方,控制台,文件,email之类的。
在控制台输出可以代替system.out.println,分级别输出,测试时可以输出debug,上线时可以输出info级别,这时debug级别不会输出。
配置文件:log4j.properties
#log4j.rootLogger=日志级别,appender1(输出源1), appender2(输出源2), ….
log4j.rootLogger=info, ServerDailyRollingFile, stdout
#appender1(输出源1)=org.apache.log4j.日志输出到哪儿
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
#设置日志后缀为.yyyy-mm-dd,只有在当天过去后缀才会改为这样,当天的是.log后缀
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
#log4j.appender.appender1.File=文件目录及文件
log4j.appender.ServerDailyRollingFile.File=C\://logs/notify-subscription.log
#log4j.appender.appender1.layout=org.apache.log4j.日志布局格式
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
#log4j.appender.appender1.layout.ConversionPattern=日志输出格式
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
#默认为true,把日志内容追加到日志文件,在文本里是追加,如果是false,就会覆盖文本之前的内容
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p [%c] %m%n
两篇讲解博客
http://bbs.csdn.net/topics/310041858
http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html