Logger

Logback

jar包介绍

1.logback-classic:它是log4j的改良版本,同时它完整的实现了slf4j API ,使你可以很方便的更换成其他日志系统,如log4j或jdk 14 logger

2.logback-access:访问模块与servlet容器集成,提供通过http访问日志的功能

3.logback-core:其他俩个模块的基础模块

Maven 依赖jar包:

添加依赖包logback使用,需要和slf4j一起使用,所以需要添加的依赖包有 slf4j-api.jar,logback-classic.jar,logback-core.jar,logback-access.jar(这个暂时用不到所以不添加了)


logback配置文件:

Logback默认配置的步骤

    (1). 尝试在 classpath下查找文件logback-test.xml;

    (2). 如果文件不存在,则查找文件logback.xml;

    (3). 如果两个文件都不存在,logback用BasicConfigurator自动对自己进行配置,这会导致记录输出到控制台。


1.根节点 ...

scan:默认为true,如果配置文件发生变化时,将会被重载。

scanPeriod:检测配置文件被修改的时间间隔,默认的时间单位是毫秒,当scan被设置为true时,默认值为一分钟

debug:默认为false,当设置为true时,将打印logback内部日志信息,实时查看logback运行状态

2.子节点:${maven.app-name}

//maven.app-name为maven定义的properties标签

用来设置上下文名称,默认为default

3.子节点: 

用来定义变量值,应用在logger上下文中,使用"${}“ 来引用变量

4.子节点 获取时间戳字符串,他有两个属性key和datePattern

key为当前的名称

datePattern格式化时间格式

5.子节点 使用jmx动态设置日志级别,而无需重启服务器。

6.字节点

日志输出组件,name指定组件名称,class指定appender 的全限定类名。

//ch.qos.logback.cron.ConsoleAppender 将日志输出到控制台上

   

        ${maven.console-log-enable}

    

   

        demo

        DEBUG

    

     //格式化日志输出内容

     

         

    

   

    UTF-8

com.logtext.ConsoleLogFilter 继承 ch.qos.logback.core.filter.Filter 过滤器会执行decide(ILoggingEvent event)方法,decide方法返回结果是枚举类FilterReply(DENY, NEUTRAL, ACCEPT其中一个)。返回值为DENY时,日志事件直接丢弃这条日志,不会再传递给剩下的过滤器。返回值为NEUTRAL时,则传递给下面的过滤器。返回值为ACCEPT时,日志事件立即处理这条日志,跳过调用其它过滤器。

 com.logtext.FunctionThresholdFilter 继承ch.qos.logback.classic.filter.ThresholdFilter 临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。


     //日志鉴别器,根据key对应的value鉴别日志事件,然后委托给具体的appender写日志

        CRON_TASK_NAME

        application

    

   

           

                        ${logHome}/crontask/%d{yyyy-MM-dd}/${CRON_TASK_NAME}

_%d{yyyy-MM-dd}.%i.log

 

                       

                                    5MB

                      

            

            

                    %n%-4r ...  

                    UTF-8

            

    

SiftingAppender会对日志事件做一些区分,然后不同的事件SiftingAppender会委托不同的appender去完成真正的写操作

RollingFileAppender:滚动文件记录,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件

rollingPolicy :当发生滚动时,决定RollingFileAppender的行为,涉及到文件移动动重命名, TimeBasedRollingPolicy设置时间滚动策略

fileNamePattern :设置文件名称

  SizeBasedTriggeringPolicy和TimeBasedRollingPolicy联合使用方式 ,设置当前活动文件大小,当超过当前文件size,会告知RollingFileAppender触发当前活动文件滚动



:用来设置某一个包或者某一个类的之日打印,可以指定打印日志的appender,也可以通过设置属性addtivity为true,向上级传递,通过日志根日志root来打印日志,具体参数如下:

name:指定要打印的某一个类或者某一个包的日志

level:设置日志打印级别,TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。如果未设置此属性,那么当前loger将会继承上级的级别。

addtivity:设置是否向上传递,默认为true

root:也是logger元素,是根logger,只有一个level属性,应为已经被命名为"root".

level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG。

可以包含零个或多个元素,标识这个appender将会添加到这个loger。

     

 

     


     


     

你可能感兴趣的:(Logger)