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配置详解相关推荐

  1. logback 配置详解(一)configuration and logger

    详细整理了logback常用配置 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 logback 简介 logback常用配置详解(一)<configuration> an ...

  2. Spring Boot Logback 配置详解

    1.Logback简介 Logback是由log4j创始人设计的又一个开源日志组件. 相比于log4j,Logback重写了内核,在一些关键执行路径上性能提升10倍以上.而且logback不仅性能提升 ...

  3. LogBack配置详解(一)

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  4. logback 配置详解

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  5. Spring Boot 2.x的默认日志管理与Logback配置详解

    前沿技术早知道,弯道超车有希望 积累超车资本,从关注DD开始 Spring Boot在所有内部日志中使用Commons Logging,但是对底层日志的实现是开放的.在Spring Boot生态中,为 ...

  6. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  7. logback 常用配置详解(二) appender

    详细整理了logback常用配置 不是官网手册的翻译版,而是使用总结,旨在更快更透彻的理解其配置 logback 简介 logback常用配置详解(一)<configuration> an ...

  8. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  9. 从零开始玩转 logback、完整配置详解

    官网地址:https://logback.qos.ch/manual/index.html 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 概述 L ...

  10. SpringBoot——slf4j+logback日志处理及配置详解

    SpringBoot--sl4j+logback日志处理及配置详解 日志的级别 打印级别:ALL > TRACE > FATAL > DEBUG > INFO > WAR ...

最新文章

  1. 必看!52篇深度强化学习收录论文汇总 | AAAI 2020
  2. 制药企业正在基于AI与基因测序发现真菌更多药用价值
  3. 自学python要看哪些书籍-学习Python编程的最好的7本书
  4. OVS sflow(二十六)
  5. 【uoj#225】[UR #15]奥林匹克五子棋 构造
  6. 分析mysql日志文件_MySQL日志文件与分析
  7. 电路中滤波电容和退耦电容_电子电路中电容的作用,滤波消抖,充放电,耦合,退耦...
  8. spring elasticsearch 按条件删除_实战:项目数据源转为Elasticsearch
  9. 将前台json对象传入java后台
  10. Python面试常用的高级用法,怎么动态创建类?
  11. dockerfile、docker compose、k8s区别
  12. 合成未来宝宝照片_当英国皇室宝宝长大:阿奇王子变卷毛星人,夏洛特公主颜值最能抗...
  13. ssis导入xml_使用XML文件配置SSIS包
  14. anaconda + pycharm安装教程补充
  15. python实现随机产生数据矩阵,将txt文件写入Excel中以及转置后写入Excel中
  16. fedora 14 root登陆修改方法
  17. 分享个一拳超人辅助脚本,自动挂机刷金币/经验/副本工具
  18. RMAN duplicate 方式 做个备库
  19. 微信小程序版的登录注册
  20. eclipse中jsp页面图片不显示问题

热门文章

  1. 自监督对比损失和监督对比损失的对比
  2. c语言万年历程序及注释,c语言万年历程序.doc
  3. 汇编程序:找出最小值
  4. 计算机网络操作系统的主要功能和类型,操作系统的五大管理功能和四大分类
  5. 雅虎相册批量下载 Beta2 版本 --纪念 5.12 汶川大地震
  6. java resourcebundle_java.util.ResourceBundle使用详解
  7. 桌面推演技术前沿及发展趋势
  8. winXP系统如何打开剪贴板查看器
  9. VS运行程序时遇到0xc0150002的问题
  10. QQ魔法卡片辅助工具外挂silverlight版