log4j日志以及分类使用

Posted 妖密哒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j日志以及分类使用相关的知识,希望对你有一定的参考价值。

你不一定要点蓝字关注我的


日志log4j.properties基本配置如下:

### 设置Logger输出级别和输出目的地 ###log4j.rootLogger=debug, stdout,logfile
### 把日志信息输出到控制台 ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.errlog4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###log4j.appender.logfile=org.apache.log4j.FileAppenderlog4j.appender.logfile.File=jbit.loglog4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.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},输出类似:20191018221028921%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日志以及分类使用的主要内容,如果未能解决你的问题,请参考以下文章

log4j介绍以及使用教程

log4j 日志分类级别配置

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

logback使用以及详细配置

log4js学习

log4j的各种类的配置