蓝迷梦

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

logback配置详解

logback日志配置详解

1.spring boot项目中各种日志配置文件的位置及名称:

  • Logback:logback.xml, logback-spring.xml, logback-spring.groovy, logback.groovy
  • Log4j:log4j.properties, log4j.xml,log4j-spring.properties, log4j-spring.xml,
  • Log4j2:log4j2.xml,log4j2-spring.xml
  • JDK (Java Util Logging):logging.properties

各个日志配置文件放置在springboot类扫描路径下:

 2.日志等级:

日志级别从低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL

当日志的级别大于或等于设置的日志级别时才会输出。

3.loggack日志配置:

【logger】:日志记录者,每个logger对应一个日志记录对象,正是通过logger把日志记录到对应的终端或者设备。root表示最顶层(根)的记录对象,其他logger可以继承root的相关设置。name属性指定具体的包,level属性指定日志级别。子对象appender-ref 指定日志的追加者对象。

实例:

 root指定了所有的日志输出级别。logger指定了com.apache.ibatis包的日志输出级别。

【appender】:日志追加器,详细指定了日志的记录方式。常用的追加者有如下几种

  1. RollingFileAppender:随着日志量的越来越大,会对文件进行切割。
  2. FileAppender:普通的文件日志追加器。
  3. ConsoleAppender:日志输出到控制台。
  4. AsyncAppender:结合文件类型追加器,实现异步日志写到文件。

常用属性:file 文件名称,append 追加写,rollingPolicy 文件切割策略,encoder 日志的格式,filter 日志过滤器,限定什么级别的日志写入文件。

实例:

 异步appender示例:

【filter】:日志级别过滤器,可以限定特定级别的日志输出,有以下几种:

  1. LevelFilter:单一级别过滤
  2. ThresholdFilter:范围过滤,过滤范围 >= 当前指定日志级别

属性:

  • level:指定日志级别。
  • onMatch:匹配当前指定日志级别时的操作。
  • onMismatch:不匹配当前指定日志级别时的操作。

操作类型有:DENY 拒绝,不执行记录;ACCEPT 接受,进行记录

实例:

 【RollingPolicy】:日志分割策略

1.TimeBasedRollingPolicy 按照时间分割

2.SizeAndTimeBasedRollingPolicy 按照文件大小和时间分割

4.mybatis 的sql语句日志配置。

【Mybatis配置logImpl】:

springboot配置实例(也可在mybatis配置文件中配置):

mybatis-plus:
configuration:
#标准输出,输出到控制台
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

 【logback配置logger】

在logback-spring.xml 文件中配置logger,指定包和等级,以及输出appender(注意:logImpl的值为Slf4jImpl方式时才能正常输出到文件中)

5.hibernate 的sql语句日志配置。

<!-- hibernate 配置 -->
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder"  level="TRACE" />
    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor"  level="DEBUG" />
    <logger name="org.hibernate.SQL" level="DEBUG" />
    <logger name="org.hibernate.type" level="TRACE" />
    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />

 5.日志配置格式

 

标识符 含义
hostName  本地计算机名称
hostAddress 本地IP地址
%-7level 日志输出级别,表示固定输出7个字符宽度,左对齐
%logger | %c 日志的名称,通常是全类名
%class | %C Java类名称
%method | %M 方法名称
%thread | %t 线程名称
%d{yyyy-MM-dd HH:mm:ss, SSS} 日志时间
%p 日志输出格式
%message | %msg | %m 日志的具体输出内容
 %file | %F 输出文件名
%L 输出错误行号
%l 输出语句所在行数
   
   

posted on   蓝迷梦  阅读(6414)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示