Log4j日志记录工具
6.1 Log4j介绍
Log4j主要用于日志信息的输出。可以将信息分级别(错误、严重、警告、调式信息)按不同方式(控制台、文件、数据库)和格式输出。
Log4j主要有以下3部分组件构成:
- 日志器(Logger):负责消息输出,提供了各种不同级别的输出方法。
- 输出器(Appender):负责控制消息输出的方式,例如输出到控制台、文件输出等。
- 布局器(格式器,Layout):负责控制消息的输出格式。
6.2 Log4j的使用
step1:引入log4j.jar
step2:在src下添加log4j.properties(定义了消息输出级别、采用哪种输出器、采用哪种布局器)
#level:大小写都可,myconsole是自己随便起的appender名字,可以写多个appender
log4j.rootLogger=debug,myconsole,myfile
#appender:可在org.apache.log4j中找自带的类
log4j.appender.myconsole=org.apache.log4j.ConsoleAppender
log4j.appender.myfile=org.apache.log4j.FileAppender
#log4j.appender.myfile.File=D:\\error.txt
log4j.appender.myfile.File=D:\\error.html
#layout:可在org.apache.log4j中找自带的类
log4j.appender.myconsole.layout=org.apache.log4j.SimpleLayout
log4j.appender.myfile.layout=org.apache.log4j.HTMLLayout
- 注意事项:级别从小到大为:debug、info、warn、error、fatal
step3:创建TestLog4j类,测试利用日志器不同的方法输出消息。
public class TestLog4j {
public static Logger logger=Logger.getLogger(TestLog4j.class);
public static void main(String[] args) {
//能显示就显示,不显示也不会影响主程序后面的运行,仅是个辅助工具
logger.debug("调试信息"); logger.info("普通信息");
logger.warn("警告信息"); logger.error("错误信息");
logger.fatal("致命信息"); } }
- 注意事项:
- 导包为org.apache.log4j.Logger。
- 若在log4j.properties中指定的级别为debug,则五种信息都会显示;若指定的级别为error,则只显示error和fatal信息。
6.3案例:修改5.8案例,使用Log4j记录日志
step1:继续使用6.2节step1和step2
step2:修改5.8案例step1
public class ExceptionBean {//将异常信息写入文件
Logger logger=Logger.getLogger(Exception.class);
public void exec(Exception ex){//ex代表目标方法抛出的异常
logger.error("====异常信息====");//记录异常信息
logger.error("异常类型"+ex);
StackTraceElement[] els=ex.getStackTrace();
for(StackTraceElement el:els){ logger.error(el); } } }
step3:执行3.4案例step3则删除操作报空指针异常(前提:已进行了5.8案例step3操作)!由于log4j.properties配置了两种输出方式,所以两种方式都有效。
控制台的显示结果:
XXX执行了资费删除操作!操作时间:2013-08-20 12:47:54
ERROR - ====异常信息====
ERROR - 异常类型java.lang.NullPointerException
…… …… …… ……
HTML显示结果: