springboot logback配置文件详解
创始人
2024-01-20 17:52:09
0
  1. 根节点configuration
    包含三个属性:
    scan:设置为true时,如果配置文件发生改变,将会被重新加载,默认为true
    scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟
    debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false

  2. 子节点contextName
    用户区分不同应用程序,每个logger都关联,默认default,不常用

  3. 子节点property
    用来定义变量值,有name和value两个属性值。可以使用 ${} 来使用变量。

  4. 子节点timestamp
    获取时间戳字符串,有key和datePattern两个属性,datePattern设置将当前时间(解析配置文件的时间)转换为字符串的模式,遵循java.txt.SimpleDateFormat的格式

  5. 子节点appender
    负责写日志的组件:name:appender名称;class:appender的全限定名
    consoleAppender:
    encoder:编码
    pattern:日志输出格式
    target:System.out(默认)和System.err
    FileAppender:
    file:文件名,可以是相对和绝对地址,不存在时自动创建
    append:true追加写入,false覆盖写入,默认true
    encoder:编码
    pattern:日志输出格式
    prudent:true安全但写入效率低,默认false
    RollingFIleAppender:
    file:文件名
    append:true追加写入,false覆盖写入,默认true
    rollingPolicy:发生滚动时,决定滚动的策略
    class:ch.qos.logback.core.rolling.TimeBasedRollingPolicy 按时间切割日志文件
    ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy 按文件大小切割日志文件
    ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy 按时间和大小切割日志文件,注意中添加%i

  6. 子节点logger
    name:指定约束的某一个包或具体类
    level:打印级别,默认集成root
    additivity:是否向上级传递,默认true

  7. 子节点root
    也是一个logger元素,但是name确定,无additivity属性
    level:打印级别,默认debug

示例


${CONSOLE_LOG_PATTERN}${CONSOLE_FILTER_LEVEL}${LOG_FILE_PATH}/run.log${FILE_LOG_PATTERN}${FILE_FILTER_LEVEL}${LOG_FILE_CLEAN_HISTORY_ON_START:-false}${LOG_FILE_PATH}/run-%d{yyyy-MM-dd}.%i.log.zip${LOG_FILE_MAX_SIZE:-100MB}${LOG_FILE_MAX_HISTORY:-30}${LOG_FILE_TOTAL_SIZE_CAP:-1GB}

logback的filter详解:
filter是可以串联的

  • 级别过滤器 ch.qos.logback.classic.filter.LevelFilter
INFOACCEPTDENY

  • 阈值过滤器 ch.qos.logback.classic.filter.ThresholdFilter
INFO

  • 表达式过滤器 ch.qos.logback.core.filter.EvaluatorFilter
  1. groovy表达式:ch.qos.logback.classic.boolex.GEventEvaluator
  2. Java表达式:ch.qos.logback.classic.boolex.JaninoEventEvaluator
    需要额外的两个JAR包,commons-compiler.jar和janino.jar
org.codehaus.janinocommons-compiler3.0.12

org.codehaus.janinojanino3.0.12

 return message.contains("There is no session with id");DENYNEUTRAL

  1. 包含标记:ch.qos.logback.classic.boolex.OnMarkerEvaluator
MYBATISNEUTRALDENY

  • 自定义过滤器

名词解释:
deny:日志将立即被抛弃不在经过其他过滤器
meutral:有序列表里的下个过滤器接着处理日志;(该级别既不处理,也不抛弃,相当于没有任何处理,日志会被保存下来并在本appender被执行)
accept:日志会被立即处理,不再经过剩余过滤器

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...