log4j笔记

1、什么是log4j?

Log4j 是Apache为Java提供的日志管理工具。他与System.out.println()的作用相似,用来跟踪、调试、维护程序。

2、让log4j与System.out.println()进行比较

  * 前者专业日志工具

    > 可以随意的指定输出目的地(可以是控制台,文件)

    > 可以灵活控制级别(只输出错误级别的日志,而信息级别的不输出)

    > 可以控制输出的格式!

  * 后者只能输出到控制台!无法控制级别(信息、错误)!

3、什么东西使用了log4j

  * c3p0

  * hibernate

  * spring

4、Log4j中有三大组件

Logger(日志器):用来输出日志消息的类,它可以输出不同级别的消息

Appender(日志输出目标):通常我们希望日志输出到文件中,以及控制台,也可能希望日志输出数据库,该类就表示一个输出的目标

Layout(格式化器):对输出的消息进行格式化,例如在消息中添加日期,以及级别等

5、配置文件

(1)日志级别

在Log4j中日志消息分为五个级别,级别由高到低排列如下:

* FATAL:重大错误,例如系统崩溃;

* ERROR:错误,例如某模块瘫痪;

* WARN:警告,程序的隐患,如果不处理,将来可能就是错误;

* INFO:信息,可以用来查看程序执行的流程;

* DEBUG:调试,用来调试程序的bug。

( 设置日志器的级别为Level.ERROR后,只有高于ERROR级别的日志才能输出)

(2)log4j.properties

把log4j放到项目的src下(即放到classes下),并且命名为log4j.properties,那么log4j会自动加载这个配置文件,这也是我们最为常用的方式

(3)根日志器

在配置文件中,需要配置名为log4j.rootLogger的日志器,它就是根日志器。其他的日志器都是根日志器的子日志器,会继承根日志器的目的地,以及级别等。

log4j.rootLogger=DEBUG,A1     

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.SimpleLayout

* log4j.rootLogger表示根日志器,DEBUG是指定根日志器的输出级别,只要大于等于DEBUG级别的日志就可以输出。A1是说明目的地(Appender)的名称;

* log4j.appender.A1表示目的地,org.apache.log4j.ConsoleAppender表示目的地为控制台目的地,即输出结果在控制台上显示;

log4j.appender.A1.layout表示A1这个目的地的格式化器,org.apache.log4j.SimpleLayout表示简化格式化器

(4)Appender

* ConsoleAppender:向控制台输出日志;

* FileAppender:向文件输出日志

* DailyRollingFileAppender:向文件输出日志,每天一个日志文件;

* RollingFileAppender:向文件输出日志,当文件大小达到指定大小后,生成新文件;

(5)layout

我们常用的格式化器是PatternLayout

* %m:信息本身;

* %c:日志器的名称;

* %d:日期,还可以指定日期的格式,例如:%d{yyyy-MM-dd HH:mm:ss};

* %p:日志级别;

* %n:换行;

* %t:当前线程;

* %l:输出日志的Java类相关信息。

posted on 2019-08-19 15:57  天高任鸟飞,海阔任鱼游  阅读(80)  评论(0编辑  收藏  举报