logback配置详解
logback配置详解
- 写在前面
- 文件结构
- 只含节点不含内容的范例
- 大体结构
- configuration节点
- 范例:
- property和springProperty节点
- 范例
- appender节点
- ConsoleAppender类
- encode
- logger和root节点
写在前面
logback属于springBoot的默认框架,你只需要引入springBoot的starter,你就已经开始使用了logback。你启动springBoot,会发现控制台在打印日志,没错,springBoot默认使用logback并且logback的默认配置就是将日志打印在控制台。
如果你需要对打印进行特别配置,如:打印到指定位置,打印指定级别,日志大小等,那么只需要在resources文件夹下面创建logback-spring.xml文件就行了。spring会自动去读取resources文件夹下面的所有配置文件。
文件结构
只含节点不含内容的范例
下面给出一个最简单的logback-spring.xml配置文件范例
<?xml version='1.0' encoding='UTF-8'?>
<!--日志配置-->
<configuration><!--直接定义属性--><property name="" value=""/><!--通过配置文件定义属性--><springProperty name="" source=""/><!--定义并描述一个日志的输出属性--><appender name="" class=""></appender><!--创建一个具体的日志输出--><logger name="" level="" additivity=""><appender-ref ref=""/></logger><!--基础的日志输出--><root level=""><appender-ref ref=""/></root>
</configuration>
大体结构
configuration节点
configuration节点是xml文件的根节点,它包含以下属性:
scan:默认值为true,检测本xml配置文件是否发生改变,如果发生变化,文件将会被重新加载。
scanPeriod:当scan属性为true时,此属性生效。设置检测本xml配置文件修改的时间间隔,默认的时间间隔为1分钟。如果只配置了时间但没有给出时间单位,默认单位是毫秒。
debug:默认值为false。当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。
范例:
每60s检测一次本xml配置文件的配置是否发生变化,不打印logback内部日志信息
<configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- 其他配置省略--> </configuration>
property和springProperty节点
property和springProperty都是用于配置全局常量的节点
不同的是,property是直接把常量写在xml配置文件中,而springProperty是从spring配置文件中读取常量
范例
配置一个名叫logFile的全局常量,他的值为/data/logs
<property name="logFile" value="/data/logs"/>
配置一个名叫logFile的全局常量,他的值从yml文件中读取
<springProperty name="logFile" source="log.file"/>
log:file: /data/logs
appender节点
appender节点相当于单个配置模版,即不同的appender对应不同的配置内容。
一个xml文件中可以有多个appender节点
一个节点如果不被引用那么他的配置不会生效,多个节点可以同时引用。
如:我想在控制台中打印所有的信息,但是在日志文件中只保存debug及以上级别的信息,那么就需要两个appender节点来容纳这两个配置
appender常用有三种,通过class属性来加载
1.ConsoleAppender 控制台配置 此配置下的信息会打印到控制台
2.FileAppender 文件配置 此配置下的信息会打印到文件中
3.RollingFileAppender 滚动文件配置 加强版的文件配置 他可以将日志信息进行区分打印到不同的日志文件中
还有用于增强上面的append的AsyncAppender异步输出配置等
这里只解释一个最简单的ConsoleAppender
ConsoleAppender类
下面给出一个标准的consoleAppender范例
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -[%file:%line]- %msg%n</pattern><charset>utf8</charset></encoder></appender>
consoleAppender是最简单的appender
在范例中,appender标签属性只含有name和class,class属性用于指定appender的类型,name属性用于被其他标签引用
子节点只含有encode
encode
encode负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。
encode有自己的格式,展开来讲又是一篇文章,这里建议自己百度,在此只解释文中范例的意思
patten节点里面是输出的格式:
%表示输出特定对象,只有后面对象有意义才能使用。如果要输出%需要加转义符。
%d表示输出日期,后面是日期格式,可以不加使用默认格式
%thread表示线程名 比如启动时一般都是main
%level 表示日志级别 比如此条日志是info级别
%logger 表示当前logger对象,是谁打印了这行日志
%file 表示具体java文件%line表示具体行数
%msg 表示具体日志信息
%n 表示换行
level前的-5表示此项宽度为5 左对齐 不写则默认为右对齐
2020-03-26 09:20:14,373 [main] INFO com.lyf.springboot.SpringbootApplication -[StartupInfoLogger.java:61]- Started SpringbootApplication in 3.3 seconds (JVM running for 4.681)
logger和root节点
logger节点和root节点非常相似,区别在于logger指定包打印模版,root指定全局打印模版
下面给出一个logger范例
<!--创建一个具体的包的日志输出--><logger name="com.lyf" level="info" additivity="true"><!--可以有多个appender-ref,即将日志记录到不同的位置--><appender-ref ref="consoleLog"/><appender-ref ref="fileLog"/></logger>
name属性表示配置指定包
level属性表示该logger的打印级别
additivity属性表示向上级logger传递信息
appender-ref节点表示引用的appender配置
再给出一个root范例
<logger name="com.lyf" level="info" additivity="true"><appender-ref ref="consoleLog"/><appender-ref ref="fileLog"/></logger>
需注意的是,在spring中,是先加载的logger配置的配置,如果还有包没有配置,那么使用root配置的配置
参考文章:
SpringBoot+SLF4J+logback进行日志记录
logback介绍和配置详解
logback配置详解相关推荐
- logback 配置详解(一)configuration and logger
详细整理了logback常用配置 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 logback 简介 logback常用配置详解(一)<configuration> an ...
- Spring Boot Logback 配置详解
1.Logback简介 Logback是由log4j创始人设计的又一个开源日志组件. 相比于log4j,Logback重写了内核,在一些关键执行路径上性能提升10倍以上.而且logback不仅性能提升 ...
- LogBack配置详解(一)
一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...
- logback 配置详解
一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...
- Spring Boot 2.x的默认日志管理与Logback配置详解
前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的.在Spring Boot生态中,为 ...
- logback节点配置详解
logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...
- logback 常用配置详解(二) appender
详细整理了logback常用配置 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 logback 简介 logback常用配置详解(一)<configuration> an ...
- 【转】logback 常用配置详解(序)logback 简介
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 从零开始玩转 logback、完整配置详解
官网地址:https://logback.qos.ch/manual/index.html 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 概述 L ...
- SpringBoot——slf4j+logback日志处理及配置详解
SpringBoot--sl4j+logback日志处理及配置详解 日志的级别 打印级别:ALL > TRACE > FATAL > DEBUG > INFO > WAR ...
最新文章
- 必看!52篇深度强化学习收录论文汇总 | AAAI 2020
- 制药企业正在基于AI与基因测序发现真菌更多药用价值
- 自学python要看哪些书籍-学习Python编程的最好的7本书
- OVS sflow(二十六)
- 【uoj#225】[UR #15]奥林匹克五子棋 构造
- 分析mysql日志文件_MySQL日志文件与分析
- 电路中滤波电容和退耦电容_电子电路中电容的作用,滤波消抖,充放电,耦合,退耦...
- spring elasticsearch 按条件删除_实战:项目数据源转为Elasticsearch
- 将前台json对象传入java后台
- Python面试常用的高级用法,怎么动态创建类?
- dockerfile、docker compose、k8s区别
- 合成未来宝宝照片_当英国皇室宝宝长大:阿奇王子变卷毛星人,夏洛特公主颜值最能抗...
- ssis导入xml_使用XML文件配置SSIS包
- anaconda + pycharm安装教程补充
- python实现随机产生数据矩阵,将txt文件写入Excel中以及转置后写入Excel中
- fedora 14 root登陆修改方法
- 分享个一拳超人辅助脚本,自动挂机刷金币/经验/副本工具
- RMAN duplicate 方式 做个备库
- 微信小程序版的登录注册
- eclipse中jsp页面图片不显示问题