您的位置:首页 > 编程语言 > Java开发

Java web添加log4j

2015-09-10 13:51 369 查看
要点:

1.打印日志到控制台和文件。

2.将指定的Java类日志输出到指定的文件。

步骤:

1.添加jar包。http://download.csdn.net/detail/xiakepan/9094753

2.添加配置文件。

log4j.properties

#可以设置级别:debug>info>error
#debug:显示debug、info、error
#info:显示info、error
#error:只error
#log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1

#stdout输出到控制台
#R0输出到公共的文件
#R1只将test.Test2.java中的信息输出到一个专门的文件logs/test2/all2.log
log4j.rootCategory=debug, stdout , R0
#R1只打印Test2类中的异常,可以实现某些类中的异常新建单独文件打印。
log4j.logger.test.Test2=debug, stdout , R1
#控制台配置
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
#整个项目输出的文件
log4j.appender.R0=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R0.layout=org.apache.log4j.PatternLayout
log4j.appender.R0.layout.ConversionPattern=%-20d{yyyy-MM-dd HH:mm:ss} [%p](%c\:%L)(%t) - %m%n
#将头一天的日志文件名改成logs/all.log.2014-12-31
log4j.appender.R0.DatePattern='.'yyyy-MM-dd
#将日志文件放在logs/all.log中
log4j.appender.R0.File=logs/CatchNovel.log

#R1指定类输出到指定的日志文件
log4j.appender.R1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=%-20d{yyyy-MM-dd HH:mm:ss} [%p](%C\:%L)(%t) - %m%n
#将头一天的日志文件名改成logs/all.log.2014-12-31
log4j.appender.R1.DatePattern='.'yyyy-MM-dd
#将日志文件放在logs/all.log中
log4j.appender.R1.File=logs/test2/test2.log


3.编写测试代码

Test.java

package test;
import org.apache.log4j.Logger;

public class Test {
private static Logger logger = Logger.getLogger(Test.class);

public void run() {
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
try{
int i = 5/0;
}catch(Exception e){
logger.error("打印getMessage=" + e.getMessage());
logger.error("打印getStackTrace=" + e.getStackTrace());
logger.error("打印e=" + e);
logger.error("打印error(e,e)=");
logger.error(e, e);
}
}

public static void main(String[] args) {
Test t = new Test();
t.run();
}
}


Test2.java

package test;
import org.apache.log4j.Logger;

public class Test2 {
private static Logger logger = Logger.getLogger(Test2.class);

public void run() {
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
try{
int i = 5/0;
}catch(Exception e){
logger.error("打印getMessage=" + e.getMessage());
logger.error("打印getStackTrace=" + e.getStackTrace());
logger.error("打印e=" + e);
logger.error("打印error(e,e)=");
logger.error(e, e);
}
}

public static void main(String[] args) {
Test2 t = new Test2();
t.run();
}
}


4.直接运行两个Java类。到项目logs目录下查看日志



红圈圈出的依次是:时间、日志级别、类路径和打印日志的行数、线程、e.getMessage日志、error(e,e)日志。

总结:我平时打印只关注debug、info、error和堆栈信息。所以只需要使用logger.debug、logger.info、logger.error、logger.error(e, e);这四个方法就行了。

目录结构:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: