一、日志等级
上一个博客我们有提到了这个日志等级,这个日志等级就是日志的输出级别,有普通日志,有异常日志,有错误日志,等等。
Log4j 2 给我们提供了好多种内置的日志等级,来看一下。
官网:http://logging.apache.org/log4j/2.x/manual/customloglevels.html
最高的是 ALL,最低的是 OFF。然后我们打开我们的配置文件,我们来看看我们配置的日志等级是什么。
可以看到哈,是 all。也就是所有的日志全部都输出,这里我们修改一下,我们改成 debug,我们再来看看日志的输出情况。
可以看到哈,唯独这个 trace 没有输出,原因其实很简单,因为我们配置的是 debug,Log4j 不会输出 intLevel 大于我们配置的 debug 的日志信息。
也就是说,我们配置成 debug,那么只会输出 intLevel 小于等于 debug 的日志信息。
二、配置文件
我们从我们的配置文件开始说。
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Configuration
这个没有啥好说的,只是为了证明这个是一个配置文件。
但是我们可以看到,这个标签中有一个 status 的值,值为 WARN。这个值是控制 Log4j 本身的日志等级的。我们将这个值设置为 ALL,然后运行一下。
可以看到哈,Log4j 本身也是有日志的,而这个 status 是控制它本身的,一般我们就弄成 WARN 就好了。
Appenders
这个是用来管理我们的输出的。我们配置文件中只配置了一个 Console,那么我们日志就会输出到我们 Eclipse 的 Console 窗口。
当然哈,Log4j 给我们提供了很多的 Appenders 模式。官网链接:http://logging.apache.org/log4j/2.x/manual/appenders.html
这个我们后期会找几个我们常用的 Appenders 去说,你要是有兴趣可以自己进行研究。
PatternLayout
这个东西是在每一个 Appender 中的一个子标签,这个标签是告诉 Log4j 我们输出日志的样子。
我们输出的样子是:时分秒毫秒 当前线程是什么 日志级别 日志名称 - 日志文本 换行
当然哈,这个配置我们不可能自己瞎写,来看看官网是怎么解释的。
http://logging.apache.org/log4j/2.x/manual/layouts.html
可以自己看看,这玩意还能配置颜色。
Loggers
日志器,这个日志器有两种,我们现在只看了其中一种:Root。还有一种是自定义日志器:Logger。
这个 Root 日志器是根日志器,也是一个默认日志器。
我们在进行日志输出的时候,可以指定用那个日志器进行输出,默认是使用 Root 进行输出,如果连 Root 也没有,就会报错,但是也可以输出。来看一下。
我们可以给每一个日志器配置它自己的日志输出等级,也可以配置名称(这个名称方便我们在程序中指定日志器时用)。
Logger
看清楚哈,这个和上面的内个不一样啊,别搞错了。这个没有 s !!!
这个配置是自定义日志器,我们来自己配置一个看一下。
然后我们在程序中调用一下。
可以看到哈,我们是走的自己定义的日志器,并没有走 Root。
还有一个注意的是,我们这里多加了一个属性:additivity="false",我们这次把 false 改成 true再来看看。
可以看到哈,有两份日志输出。
这里解释一下:additivity 指定是否同时输出 log 到父类的 appender。我们一般都弄成 false,就不让 Root 那边的日志器再输出一次了。
AppenderRef
这个标签是指引用的那个 Appender,我们这里使用的是 Console。
这个标签可以写多个,我们后面也会说的。
Properties
这个标签我们也是以后常用的,主要是用来定义一些通用的常量的。
我这从官网上找的一个例子~~
这一篇就说到这里,大部分都是概念,希望大家好好看一下。
有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人自愿网站:https://www.lemon1234.com
最近网站在改造中,欢迎各位提出意见。