Logback的配置文件,你看懂了吗

参考文章一
参考文章二
在这里插入图片描述

  • configuration是XML文件根元素。
  • rootlogger可视为同一类,都是日志设置;root是日志的全局设置,而logger可以单独设置某一些包和类的日志输出。
  • appender配置日志格式、如何过滤、文件处理等。
  • propertycontextName元素,分别用来定义变量和应用上下文名称,非必须。

配置Logback的方式:

  1. 通过Spring Boot配置文件配置Logback
  2. 通过XMl文件自定义Logback配置
<?xml version="1.0" encoding="utf-8"?>
<configuration><contextName>logback-spring-demo-dev</contextName><property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/><property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %highlight(%msg) %n"/><property name="LOG_HOME" value="logs"/><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${pattern}</pattern></encoder></appender><!-- 控制台输出-带颜色 --><appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${pattern-color}</pattern></encoder></appender><!-- 文件输出 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/all.%d.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>${pattern}</pattern></encoder></appender><root level="INFO"><appender-ref ref="CONSOLE-WITH-COLOR"/><appender-ref ref="FILE"/></root><logger name="com.example.logbackdemo.IndexAction" level="info" additivity="false"><appender-ref ref="CONSOLE"/></logger></configuration>
  • 两种属性:contextNameproperty
  • 三个节点:appenderrootlogger

以下是配置文件的各个部分的详细解释:

  1. <contextName>:定义了日志上下文的名称,这里被设置为logback-spring-demo-dev。这个名称通常用于区分不同的应用或环境。

  2. <property>:定义了一些属性,可以在配置文件中重复使用。在这个配置文件中定义了三个属性:

    • pattern:定义了日志的输出格式,包括时间戳、线程名、日志级别、日志发生的位置和消息。
    • pattern-color:定义了带颜色的日志输出格式,用于控制台输出,以便更容易区分不同级别的日志。
    • LOG_HOME:定义了日志文件的存储目录,这里被设置为logs
  3. <appender>:设置日志渲染效果,name表示该渲染器的名字,class表示使用的输出策略,常见的有控制台输出策略(ConsoleAppender)和文件输出策略(FileAppenderRollingFileAppender)。
    这里配置了三种appender:

    • CONSOLE:标准的控制台输出,使用PatternLayoutEncoderpattern属性来格式化日志。
    • CONSOLE-WITH-COLOR:也是控制台输出,但使用带颜色的pattern-color属性来格式化日志。
    • FILE:定义了文件输出,使用RollingFileAppender,它支持基于时间和文件大小的滚动策略。
      • <rollingPolicy>:是FILE appender的一部分,定义了日志文件的滚动策略:
        • fileNamePattern:定义了滚动日志文件的命名模式。
        • SizeAndTimeBasedFNATP:定义了基于文件大小和时间的触发策略,其中maxFileSize设置了单个文件的最大大小。
        • maxHistory:定义了要保留的最大历史记录天数。
  4. <root>:设置了根日志记录器(全局日志)的级别以及它使用的appender(CONSOLE-WITH-COLORFILE)。

日志级别:ERROR -> WARN -> INFO -> DEBUG

如配置日志级别为INFO,则INFO及以上级别的日志会输出,而比INFO级别低的日志(debug日志)不会被输出。

  1. <logger>:用来设置某一个类或者某个包的日志输出级别、以及关联的appender。additivity设置为false,意味着这个记录器不会将日志事件传递给根记录器。它只使用CONSOLE appender进行日志记录,而不使用带颜色的版本。

总结:这个Logback配置文件定义了日志输出到控制台和文件的方式。它包括了不同的appender,即CONSOLECONSOLE-WITH-COLORFILE。文件输出使用了rollingFileAppender,以按时间滚动的方式记录日志文件。根日志级别被设置为INFO,并指定了输出到控制台的格式。同时,com.example.logbackdemo.IndexAction包的日志级别被设置为INFO,并将其输出到控制台。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(N-140)基于springboot,vue协同过滤推荐算法个性化购物商城

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatisredis 本…

yarn包管理器在添加、更新、删除模块时,在项目中是如何体现的

技术很久不用&#xff0c;就变得生疏起来。对npm深受其害&#xff0c;决定对yarn再整理一遍。 yarn包管理器 介绍安装yarn帮助信息最常用命令 介绍 yarn官网&#xff1a;https://yarn.bootcss.com&#xff0c;学任何技术的最新知识&#xff0c;都可以通过其对应的网站了解。无…

下一代 Vue3 Devtools 正式开源

什么是 Vue DevTools Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用程序。 Vue DevTools:Unleash Vue Developer Experience. Enhance your Vue development journey with an amazing experience! 典型的功能特征包…

【数据结构】二叉树(遍历,递归)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​ 目录 二叉树遍历规则 前序遍历 ​…

day-13 拿出最少数目的魔法豆

思路 将beans的每个数值当做袋子最后豆子剩余数&#xff0c;选择取豆子最少的一种方案 解题方法 //从小到大&#xff0c;将每个beans[i]作为剩余豆子数 //对于beans[i]&#xff0c;i之前的全为零&#xff0c;i之后的全变为beans[i] ansMath.min(ans,sum-(beans.length-i)*bean…

尚无忧【无人共享空间 saas 系统源码】无人共享棋牌室系统源码共享自习室系统源码,共享茶室系统源码

可saas多开&#xff0c;非常方便&#xff0c;大大降低了上线成本 UNIAPPthinkphpmysql 独立开源&#xff01; 1、定位功能&#xff1a;可定位附近是否有店 2、能通过关键字搜索现有的店铺 3、个性轮播图展示&#xff0c;系统公告消息提醒 4、个性化功能展示&#xff0c;智能…

CNN:Convolutional Neural Network(下)

目录 1 CNN 学到的是什么 1.1 Convolution 中的参数 1.2 FFN 中的参数 1.3 Output 2 Deep Dream 3 Deep Style 4 More Application 4.1 AlphaGo 4.2 Speech 4.3 Text 原视频&#xff1a;李宏毅 2020&#xff1a;Convolutional Neural Network 本博客属于学…

【SpringBoot】Bean 是什么?

感兴趣的话&#xff0c;可以看我另外一篇关于 Bean 的文章&#xff1a;【Java基础】Spring 中 Bean 的理解与使用 一、Bean 定义 Bean 作为 Spring 框架面试中不可或缺的概念&#xff0c;其本质上是指代任何被 Spring 加载生成出来的对象。&#xff08;本质上区别于 Java Bea…

[Python] 如何通过ctypes库来调用C++ 动态库 DLL?

ctypes库介绍 ctypes是Python的一个外部库,它提供了一种灵活的方式来调用C语言的动态链接库(DLL)或共享库(SO)。通过ctypes,我们可以在Python中直接调用C语言编写的函数和变量,从而实现跨语言的互操作。 ctypes 它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的…

安卓应用无法拉起部分机型微信支付

错误提示&#xff1a; 2024-01-11 09:01:01.878 11754-11754 MicroMsg.S...ApiImplV10 com.bm.read E register app failed for wechat app signature check failed 2024-01-11 09:01:01.879 11754-11754 MicroMsg.S...ApiImplV10 com.bm.read E s…

阿里云 linux Centos7 安装 Miniconda3 + 创建Python环境

1.下载miniconda &#xff08;1&#xff09;法一&#xff1a;可以去下载清华源的miniconda镜像源&#xff0c;选择自己需要的版本&#xff0c;然后上传到Linux服务器上&#xff0c;linux上使用请选择linux版本&#xff0c;如下&#xff1a; &#xff08;2&#xff09;法二&…

Vue-26、Vue内置指令v-cloak与v-once以及v-pre

1、v-cloak 本质上是一个特殊属性&#xff0c;Vue实例创建完毕并接管容器后&#xff0c;会删掉v-cloak属性使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF…