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定义的properties标签
用来设置上下文名称,默认为default
3.子节点:
用来定义变量值,应用在logger上下文中,使用"${}“ 来引用变量
4.子节点
key为当前
datePattern格式化时间格式
5.子节点
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 :设置文件名称
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。