log4j2配置文件解读 |
您所在的位置:网站首页 › logmanagergetlogger函数详解 › log4j2配置文件解读 |
注意: 级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。 基本上默认的级别没多大区别,就是一个默认的设定。你可以通过它的API自己定义级别。你也可以随意调用这些方法,不过你要在配置文件里面好好处理了,否则就起不到日志的作用了,而且也不易读,相当于一个规范,你要完全定义一套也可以,不用没多大必要。 日志调用执行上面的demo,会报如下错误,且只会打印error、 fatal的信息, 因为没有配置log4j2的配置文件, 会使用系统默认的配置文件。 ERROR StatusLogger No log4j2 configuration file found. Using default configuration:logging only errors to the console.若配置了配置文件,可根据自己的配置输出如下信息,把日志级别设置的是trace: 配置文件log4j2的配置文件后缀名只能为 .xml, .json或者 .jsn, 在默认的情况, 系统选择configuration文件的优先级如下: 1.classpath下名为 log4j2-test.json 或者log4j2-test.jsn文件 2.classpath下名为log4j2-test.xml 3.classpath下名为 log4j2.json 或者log4j2.jsn文件 4.classpath下名为log4j2.xml 建议使用log4j2.xml该配置文件进行log输出的配置。 举例如下: classpath指自己所建工程下target文件下test-classes的路径: log4j2配置文件介绍以及使用 Configuration根节点有两个属性status和monitorinterval,有两个子节点:Appenders和Loggers(表明可以定义多个Appender和Logger). status用来指定log4j本身的打印日志的级别. monitorinterval用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s Loggers节点:用于定义logger的level和所采用的appender,它有两种子节点:Root和Logger. Root节点:用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出 level:日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF. AppenderRef:Root的子节点,用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自Root,如果指定了MAME会在指定的这个Appender和Root的Appender中都会输出,此时我们可以设置Logger的additivity="false",只在自定义的Appender中输出 Logger节点:用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。 name:用来指定该Logger所适用的类或者类所在的包全路径,继承自Root节点. level:日志输出级别,共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF. 其中配置文件日志级别说明如下: all:最低级的,用于打开所有日志 trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。 debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。 info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。 warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。 error: 错误信息。用的也比较多。 fatal: 级别比较高了。重大错误,可以直接停止程序了 off:最高级,用于关闭所有日志 备注:程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。 Appendes节点输出目的地.充分考虑了日志事件的输出、包装以及过滤转发的可能,包括最基本的输出到本地文件、输出到远程主机,对文件进行封装、注入, 并且还能按照日志文件的时间点、文件大小等条件迸行白动封存。它常用的三种子节点:Console,RollingFile、File。 Console节点用来定义输出到控制台的Appender name:指定Appender的名字 target:SYSTEM_OUT或SYSTEM_ERR,一般只设置默认:SYSTEM_OUT。 PatternLayout:输出格式,不设置默认为:%m%n File节点用来定义输出到指定位置的文件的Appender name:指定Appender的名字 FileName:指定输出日志的目的文件带全路径的文件名 PatternLayout:输出格式,不设置默认为:%m%n RollingFile节点用来定义超过指定大小白动删除旧的创建新的Appender name:指定Appender的名字 FileName:指定输出日志的目的文件带全路径的文件名 PatternLayout:输出格式,不设置默认为:%m%n FilePattern:指定新建日志文件的名称格式 Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志 TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,interval属性用来指定多久滚动依次,默认1hour。modulate=true用来调整时间,比如现在是下午七点,interval是4,name第一次滚动是在下午八点,接着是凌晨十二点,午夜四点,而不是一开始就是十一点。 SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小 DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的日志文件,通过max属性。不设置max属性,是默认7个文件 PatternLayout是日志文件的布局格式常用的参数如下: %d:打印时间,常用设置:{HH:mm:ss.SSS} {yyyy-MM-dd 'at' HH:mm:ss z}等 %class/%c:打印输出日志的类名,常用设置{36} 表示层数 %level:打印日志级别 ,常用设置%-5level 表示日志的级别长度小于5,则右边用空格填充 ;%5level 相反。 %L:打印日志输出语句在文件中的行号。 %M:打印日志输出语句所在的方法名。 %t:当前生成日志事件的线程。 %m/%msg/%message:输出日志事件所提供的信息。 说了这么多,贴个详细的配置信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 注意:${sys:user.home}指的是系统用户路径,在c盘执行日志文件超过多大而重新新建日志文件结果如下:
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |