Log4j的使用

Log4j的使用:

(1)导入jar

(2)配置文件:在项目的src目录下创建一个log4j.properties文件。

在配置文件中写入(加粗部分):

log4j.rootLogger=[ level ], appenderName1 , appenderName2,...

Level:是日志记录的优先级,分为OFFFATALERRORWARNINFODEBUGALL或者自定义级别。

Log4j建议只使用4个级别,优先级从高到低分别是ERRORWARNINFODEBUG。通过在这里定义的级别,可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

appenderName:就是指定日志信息输出到哪个地方,可以同时指定多个输出目的地。例如:log4j.rootLogger=INFO,A,B,C配置了3个输出地方,这个名字可以任意,但必须与我们在后面进行的设置名字对应。

log4j.appender.A=org.apache.log4j.ConsoleAppender

此句定义名为A的输出端是那种类型,可以是:

org.apache.log4j.ConsoleAppender (控制台)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

log4j.appender.A.layout=org.apache.log4j.PatternLayout

此句定义名为A的输出端的layout是哪种类型,可以是:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)

log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%p]:%l - %m%n

打印参数如下:

%m输出代码中指定的消息

%M输出打印该条日志的方法名

%p输出优先级,即OFFFATALERRORWARNINFODEBUG...

%r输出自应用启动到输出该log信息耗费的毫秒数

%c输出所属类目,通常就是所在类的全名

%t输出产生该日志事件的线程名

%n输出一个回车换行符

%d输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2019-04-20 22:10:28,921

%l输出日志事件的发生位置,及在代码中的行数

 

log4j.appender.B.Threshold=INFO //指定当前日志的输出级别,优先级低于指定级别的日志不输出。

例如:

log4j.rootLogger=INFO,A,B,C

#A#

1 log4j.appender.A=org.apache.log4j.ConsoleAppender//将日志输出到控制台
2 
3 log4j.appender.A.Target=System.out
4 
5 log4j.appender.A.layout=org.apache.log4j.PatternLayout
6 
7 log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n

##B

 1 log4j.appender.B=org.apache.log4j.DailyRollingFileAppender
 2 
 3 #B de suo zai mu lu
 4 
 5 log4j.appender.B.File=log/info.log //指定B文件的所在目录
 6 
 7 log4j.appender.B.Appender=true//指定是否可以追加
 8 
 9 log4j.appender.B.Threshold=INFO//指定B文件记录的日志级别
10 
11 log4j.appender.B.layout=org.apache.log4j.PatternLayout
12 
13 log4j.appender.B.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n //日志输出格式

#C

 1 log4j.appender.C=org.apache.log4j.DailyRollingFileAppender
 2 
 3 #C de suo zai mu lu
 4 
 5 log4j.appender.C.File=log/error.log
 6 
 7 log4j.appender.C.Appender=true
 8 
 9 log4j.appender.C.Threshold=ERROR
10 
11 log4j.appender.C.layout=org.apache.log4j.PatternLayout
12 
13 log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t][%p]:%l - %m%n

使用示例:

1 import org.apache.log4j.*;
2 public class Test {
3     public static void main(String[] args) {
4         Logger logger=Logger.getLogger(Test.class);
5         logger.error("我是error错误");    //记录一个error级别的日志
6         logger.info("我是info错误");    //记录一个info级别的日志
7         logger.warn("我是warn错误");    //记录一个warn级别的日志
8         }
9 }

 

posted @ 2019-07-08 16:54  白春雨  阅读(267)  评论(0编辑  收藏  举报