市面很多关于Java记录日志的工具,LogBack Log4J等等,经过一天的学习,大概有一个概念,现在就记录一下笔记
大家都离不开几个东西, Logger, appender, 还有root
Appender
他是一个打印日志规则定义,意思就等于创造一种规则,往后如果谁想使用这个打印规则引用一下这个规则就可以了,规则包括
- 打印的方式,就是打印在控制台,还是打印到文件,或者打印到某个流中,其中还可以定义打印的文件大小来决定是否回滚等等
- 打印的格式,例如 [2019-03-02 DEBUG] 我的日志, 使用者可以按需求定义这种规则,具体格式可以在网上找到很多
- 这里也可以定义自己打印这种日志的格式处理或者使用自动的一些日志实现类
Logger和Root
这两个东西是一套东西,大家都是Logger, 每一个Logger都有名字,而Root其实也是一个Logger,只是它的名字就叫Root,所以他就定义他的节点为Root
- Logger, 可以定义这个Logger的名称,其中有一个参数叫name,这个name就是定义包,后者类名,意思就是说,当使用者在这个包下,或者这个类里面使用到打印日志的代码的时候,例如 log.error(“错误”)的时候,就使用这种日志规则,这里可以引用很多上面所定义到的规则,如上面定义了一个规则name=“Test”,那这里就可以使用 <appender-ref>去引用这个名字为Test的规则
假如一个Logger引用了一个打印到控制台,和一个打印到文件的规则,那么当指定代码中调用打印日志的代码的时候,他就会在控制台带打印一份,在文件里面也记录一份
- Root,root就是一个最高级的Logger, 当代码调用打印日志代码的时候,而Log配置文件中,没有对指定的类或者包做打印规则配置的时候,统一都会使用Root节点里面的规则