log4j日志以及分类使用
Posted 妖密哒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j日志以及分类使用相关的知识,希望对你有一定的参考价值。
你不一定要点蓝字关注我的
日志log4j.properties基本配置如下:
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug, stdout,logfile
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n
log4j.rootLogger = level,appenderName1,appenderName2, .....
Log4j建议只使用四个级别,
优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,
可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别
则应用程序中所有DEBUG级别的日志信息将不被打印出来
appenderName1,就是指定日志信息输入到哪个地方,你可以同时指定多个输出目的地。
例如:log4j.rootLogger = level,A,B,C 设置了3个输出地方
这个名字可以任意(如上面的A),但必须与我们在后面进行的设置名字对应。
Appender的配置详解
Log4j提供的appender有以下5种,分别可以将日志信息输出到5个不同的平台
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Target目标:
System.err和System.out的区别
区别1:API解释的二者用途不同,out为标准输出,err为标准错误输出;
区别2:在eclipse里运行,只管差别就是二者显示的颜色有所区别;
区别3:查阅相关资料,System.out.println可能会被缓冲,而System.err.println不会,由于err不需要缓冲即可输出,直接造成了我们视觉上看到的其位置的不确定性;
Log4j提供的layout有以下几种:
org.apache.log4j.htmlLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
ConversionPattern配置
-X号: X信息输出时左对齐;
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2019年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及行数。
举例:Testlog4.main(TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个”%”字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行
其他小小配置:
Threshold是个全局的过滤器,它将把低于所设置的level的信息过滤不显示出来。
Append,默认为true,如果为false的话将会覆盖已致歉的记录。
以上是关于log4j日志以及分类使用的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情