分类: LINUX
2013-02-19 19:28:14
线程调试,日志输出 的利器 – log4j ,大家过一眼。
Log4j 开始使用 :
1. 工程模块映入 log4j jar
2. 在classpath 根目录下 添加 log4j.properties
3. 需要落日志的类中在 class 域写入 :
private static Logger logger = Logger.getLogger(SayHello.class));
4. 根据当前运行状态选择 日志输出
修改办法 : log4j.properties > log4j.rootLogger
日志输出模式详细说明 :
a) 默认:log4j.rootLogger=INFO ,stdout
输出: 控制台
格式 :
类目名.方法名$线程名词(源文件:行数):运行当前时间 (换行)
日志内容输出 (换行)
(换行)
b) 测试: log4j.rootLogger=INFO ,test
输出 : 运行当前目录 test.log
格式:
类目名.方法名$线程名词(源文件:行数):运行当前时间 - 日志内容输出(换行)
c) 运行.简单 : log4j.rootLogger=INFO ,run_simple
输出 : run_simple.log #当前运行 ,跨天会切分 run_simple.log.yyyyMMdd
格式 :运行当前时间 - 日志内容输出(换行)
d) 运行 : log4j.rootLogger=INFO ,run
输出 : run.log #当前运行 ,跨天会切分 run.log.yyyyMMdd
格式 :类目名:运行当前时间 - 日志内容输出(换行)
F) 运行详细 : log4j.rootLogger=INFO , run_detailed
输出 : run_detailed.log #当前运行 ,跨天会切分 run_detailed.log.yyyyMMdd
格式 : 类目名.方法名$线程名词(源文件:行数):运行当前时间 - 日志内容输出(换行)
落日志代码参考 :
logger.info("Entering application.");
Thread cc = new Thread(new Runnable(){
@Override
public void run() {
try {
int ii = 0;
int jj = 1 ;
int cc = jj/ii;
} catch (Exception e) {
logger.error(e);
}
}
});
//cc.setName("google");
cc.start();
}
控制台输出 :
demo.SayHello.main$main(SayHello.java:15):2013-02-19 19:23:58,185
Entering application.
demo.SayHello$1.run$Thread-0(SayHello.java:26):2013-02-19 19:23:58,188
java.lang.ArithmeticException: / by zero
#http://wwwz.iteye.com/blog/249039 # DEBUG \INFO \ WARN \ ERROR \ FATAL # stdout,test, run_simple,run,run_detailed log4j.rootLogger=INFO ,stdout,test, run_simple,run,run_detailed # stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%C.%M$%t(%F:%L) - %m%n # test log4j.appender.test=org.apache.log4j.RollingFileAppender log4j.appender.test.layout=org.apache.log4j.PatternLayout log4j.appender.test.layout.ConversionPattern=%C.%M$%t(%F:%L):%d{yyyy-MM-dd HH:mm:ss,SSS} - %m%n log4j.appender.test.File=test.log log4j.appender.logfile.test=1GB # run_simple log4j.appender.run_simple=org.apache.log4j.DailyRollingFileAppender log4j.appender.run_simple.File=run_simple.log log4j.appender.run_simple.DatePattern='.'yyyyMMdd log4j.appender.run_simple.layout=org.apache.log4j.PatternLayout log4j.appender.run_simple.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} - %m%n # run log4j.appender.run=org.apache.log4j.DailyRollingFileAppender log4j.appender.run.File=run.log log4j.appender.run.DatePattern='.'yyyyMMdd log4j.appender.run.layout=org.apache.log4j.PatternLayout log4j.appender.run.layout.ConversionPattern=%C:%d{yyyy-MM-dd HH:mm:ss,SSS} - %m%n # run_detailed log4j.appender.run_detailed=org.apache.log4j.DailyRollingFileAppender log4j.appender.run_detailed.File=run_detailed.log log4j.appender.run_detailed.DatePattern='.'yyyyMMddHH log4j.appender.run_detailed.layout=org.apache.log4j.PatternLayout log4j.appender.run_detailed.layout.ConversionPattern=%C.%M$%t(%F:%L):%d{yyyy-MM-dd HH:mm:ss,SSS} - %m%n