log4j简略例子
log4j简单例子
简单点说,
写程序时,有时懒得debug,就直接System.out.println()看看后台,
等程序都完成了,交给客户,跑的时候后台一堆乱东西,再一行行删,
等以后又要修改程序了,再加,...
时间是宝贵的,所以APACHE做了log4j,使得只要改一改配置文件就可以实现上述功能.
===下面是log的级别,没有谁能记得住,也别去记住.
Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
===
真正的高手只会记得这两句:
1,要看或者输出log,配置文件里[#log4j.rootLogger=ALL,A1]设置成'ALL',不看'OFF'
2,写代码时,对应的信息用对应的英文单词,e.g.错误用error, 调试[和跑差一点点]用debug
附带说一下,默认的log4j.properties配置文件放src下,和类同级.
其他的什么都不要管.
=====================部分代码,全的下载附件====================
# NEXT LINE JUST PUT 'ALL' OR 'OFF'
log4j.rootLogger=ALL,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%-2r[%t][%p][%c]--%m%n
#log4j.appender.A2=org.apache.log4j.RollingFileAppender
#log4j.appender.A2.File=F:\\test\\example.log
#log4j.appender.A2.MaxFileSize=100KB
#log4j.appender.A2.MaxBackupIndex=3
#log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
===================================
package xxxxxxxxx
import org.apache.log4j.Logger;
public class TstMessageLevel {
// Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR <
// Level.FATAL < Level.OFF
static Logger logger = Logger.getLogger(TstMessageLevel.class);
public void method1() {
System.out.println("=====System.out.println======");
logger.debug("==========debug===============");
logger.info("==========info===============");
logger.warn("==========warn===============");
logger.error("==========error===============");
logger.fatal("==========fatal===============");
}
}
===================================
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
TstMessageLevel tstMessageLevel = new TstMessageLevel();
tstMessageLevel.method1();
// test to see if the log can output which method call them
// result is the log has no such function
anotherMethod();
}
public static void anotherMethod() {
System.out.println("===here is another method===");
TstMessageLevel tstMessageLevel = new TstMessageLevel();
tstMessageLevel.method1();
}
简单点说,
写程序时,有时懒得debug,就直接System.out.println()看看后台,
等程序都完成了,交给客户,跑的时候后台一堆乱东西,再一行行删,
等以后又要修改程序了,再加,...
时间是宝贵的,所以APACHE做了log4j,使得只要改一改配置文件就可以实现上述功能.
===下面是log的级别,没有谁能记得住,也别去记住.
Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR < Level.FATAL < Level.OFF
===
真正的高手只会记得这两句:
1,要看或者输出log,配置文件里[#log4j.rootLogger=ALL,A1]设置成'ALL',不看'OFF'
2,写代码时,对应的信息用对应的英文单词,e.g.错误用error, 调试[和跑差一点点]用debug
附带说一下,默认的log4j.properties配置文件放src下,和类同级.
其他的什么都不要管.
=====================部分代码,全的下载附件====================
# NEXT LINE JUST PUT 'ALL' OR 'OFF'
log4j.rootLogger=ALL,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%-2r[%t][%p][%c]--%m%n
#log4j.appender.A2=org.apache.log4j.RollingFileAppender
#log4j.appender.A2.File=F:\\test\\example.log
#log4j.appender.A2.MaxFileSize=100KB
#log4j.appender.A2.MaxBackupIndex=3
#log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
===================================
package xxxxxxxxx
import org.apache.log4j.Logger;
public class TstMessageLevel {
// Level.ALL < Level.DEBUG < Level.INFO < Level.WARN < Level.ERROR <
// Level.FATAL < Level.OFF
static Logger logger = Logger.getLogger(TstMessageLevel.class);
public void method1() {
System.out.println("=====System.out.println======");
logger.debug("==========debug===============");
logger.info("==========info===============");
logger.warn("==========warn===============");
logger.error("==========error===============");
logger.fatal("==========fatal===============");
}
}
===================================
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
TstMessageLevel tstMessageLevel = new TstMessageLevel();
tstMessageLevel.method1();
// test to see if the log can output which method call them
// result is the log has no such function
anotherMethod();
}
public static void anotherMethod() {
System.out.println("===here is another method===");
TstMessageLevel tstMessageLevel = new TstMessageLevel();
tstMessageLevel.method1();
}