摘要:配置本文讲的文件的配置,其中主要是在介绍各类。注意,使用必须声明节点子节点指定命名模式注意,必须包含,为窗口索引。并且为多带带拿出来。
Logback 配置
本文讲logback的xml文件的配置,其中主要是在介绍各类appender。logback 的简单例子
xml文件大概结构 导图链接
xml
拽拽坏人帮 %cn %d{hh:MM:ss} [%20logger{0}] - %message%n
代码使用
public class MyLogback { private final static Logger logger = LoggerFactory.getLogger("com.cck.MyLogback"); public static void main(String[] args) { logger.info("hello world"); } }xml配置中的appender
appender 节点是配置日志的目的地,该节点必须指定name和class属性,不同的class会有不同的子节点。
分别有以下几种类型的appender
ConsoleAppender 控制台
FileAppender 文件
RollingFileAppender 滚动记录文件
SiftingAppender 自定义筛选文件
1. ConsoleAppender 控制台xml
拽拽坏人帮 %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n System.err
2. FileAppender 文件String 用于指定字符串在控制台的打印方式
默认是 System.out, 也可以是System.err
xml
拽拽坏人帮 logback.log %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n true true
3. RollingFileAppender 滚动记录文件 3.1 滚动记录文件 -- 根据时间 TimeBasedRollingPolicylogback.log 指定日志文件名
true 日志是否追加到文件结尾,默认是true
true true的情况下,日志会被安全地写入到文件 (加了锁,因为存在多个FileAppender同时向日志文件写入的情况),默认是false
xml
拽拽坏人帮 %cn -%.-1p %d{hh:MM:ss} [%8logger{26}] - %message%n logFile/%d{yyyy/MM/dd}.log 30
3.2 滚动记录文件 -- 根据长度 FixedWindowRollingPolicy指定滚动行为 rollingPolicy 子节点
指定文件名模式, yyyy/mm/dd 表示按天滚动 模式例子
30 控制保存的最大文件数量
如果是每天滚动30 表示保存最近30天的日志文件
xml
拽拽坏人帮 testFixedRollFile.log %d{hh:MM:ss} [%20logger{0}] - %message%n logFile/logFile.%i.log 1 5 1KB
4. SiftingAppender 自定义筛选文件 假设有以下需求指定根据窗口长度进滚动。
注意,使用 FixedWindowRollingPolicy 必须声明节点 rollingPolicy 子节点
指定命名模式
注意,必须包含%i,i 为窗口索引。
滚动时,日志文件名为logFile/logFile"i".log
eg .logFile/logFile1.log logFile/logFile2.logrollingPolicy 子节点
1 指定 i 的最小值rollingPolicy 子节点
5 指定 i 的最大值
指定何时滚动 triggeringPolicy 子节点
1KB 指定文件大小为 1KB 时进行滚动
userId 是6位的,现在想让前4位id相同的用户的日志放在一个文件夹中。并且id为 000000 多带带拿出来。 也就是以下的效果: /000000.log /0001 /01.log /23.log /0002 /12.log /00.log第一步,按照业务需求编写Java类
package com.cck; import java.util.Map; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.sift.AbstractDiscriminator; public class MyLoggerDiscriminator extends AbstractDiscriminator第二步,在xml使用{ public final static String KEY = "user"; private String filePath; private String fileName; private String defaultValue = "000000"; public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } @Override public String getDiscriminatingValue(ILoggingEvent e) { // 拿到mdc Map mdc = e.getMDCPropertyMap(); String user = mdc.get(KEY); if(user == null || user == "000000") { return defaultValue; } // 返回一个路径 filePath = user.substring(0, 4) + "/"; fileName = user.substring(4, 6); return filePath + fileName; } @Override public String getKey() { return KEY; } }
拽拽坏人帮 siftingLog/${user}.log %date{HH:mm:ss} %.-1level[%25logger{0}] - <%message>%n siftingLog/${user}.%d{yyyy-MM-dd}.log.gz
第三步,使用指定自定自定义的鉴别类
package com.cck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; public class MyLogback { private final static Logger logger = LoggerFactory.getLogger("com.cck.MyLogback"); public static void main(String[] args) { MDC.put(MyLoggerDiscriminator.KEY, "156651"); logger.debug("hello world"); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/110391.html
摘要:日志名的从开始,自动递增就是指抛出的异常,是显示全部,如果在中写入数字,则表示展示多少行重点来了,上边都是输出源。 一、简介 LogBack是一个日志框架,它是Log4j作者Ceki的又一个日志组件。 LogBack,Slf4j,Log4j之间的关系 slf4j是The Simple Logging Facade for Java的简称,是一个简单日志门面抽象框架,它本身只提供了日志F...
摘要:默认情况下将级别的日志输出到控制台中,不会写到日志文件,且不能进行复杂配置。节点用于定义变量,方便使用。 showImg(https://raw.githubusercontent.com/FleyX/files/master/blogImg/20190320135049.png); 前言 java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj...
摘要:框架会默认加载下命名为或的配置文件。采用异步写日志的方式而不让此次写日志发生磁盘,阻塞线程从而造成不必要的性能损耗。 通过阅读本篇文章将了解到 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高性能 3.异步输出日志的原理 配置文件logback-spring.xml SpringBoot工程自带logback和slf4j的依赖,所...
摘要:框架会默认加载下命名为或的配置文件。采用异步写日志的方式而不让此次写日志发生磁盘,阻塞线程从而造成不必要的性能损耗。 通过阅读本篇文章将了解到 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高性能 3.异步输出日志的原理 配置文件logback-spring.xml SpringBoot工程自带logback和slf4j的依赖,所...
阅读 5264·2021-09-22 15:59
阅读 1855·2021-08-23 09:42
阅读 2559·2019-08-29 18:42
阅读 3442·2019-08-29 10:55
阅读 2057·2019-08-27 10:57
阅读 1758·2019-08-26 18:27
阅读 2721·2019-08-23 18:26
阅读 2911·2019-08-23 14:40