当前位置: 首页 > news >正文

10.日志中间件

1.核心:SLF4J 提供统一的API,隔离具体实现,Logback / Log4j2 是具体实现。

2.核心配置文件(logback.xml 必须放在resources目录下,否则需在web.xml配置)

  • ① 常量定义:日志格式、存储路径、编码方式

    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{30} - %msg%n"/>
    <!--                                      日志时间              线程名     日志级别   日志类名    具体内容 换行符--> 
    <!--                                                                      INFO    类全限定名(无限长度) --><property name="LOG_DIR" value="F:/logs/springmvc"/>
    <!-- 路径:/logs/springmvc 保存在Tomcat所在磁盘(如C盘)../logs/springmvc 则保存在Tomcat目录下(如C:\tomcat9.0\logs\springmvc)F:/logs/springmvc 自定义路径★ “/”不能用“\”,且logback会自动创建目录结构
    可以正常输出到控制台,但无法写入文件,通常是权限不足导致
    --><property name="CHARSET" value="UTF-8"/>
    
  • ② 定义日志输出规则(Appender):以文件输出为例

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_DIR}/app.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_DIR}/app.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 关键:%d{yyyy-MM-dd} 是按天分割的核心格式,%d{yyyy-MM}则是按月 --><maxHistory>30</maxHistory></rollingPolicy><encoder> <!-- 日志格式配置(即日志长什么样子) --><pattern>${LOG_PATTERN}</pattern><charset>${LOG_CHARSET}</charset></encoder>
    </appender>
    

    时间+大小双条件:一天文件过大生成多个文件

    <fileNamePattern>${LOG_DIR}/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>50MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
    <maxIndex>10</maxIndex> <!-- 每天最多10个文件。 -->
    
  • ③ 定义过滤规则(logger/root)

    <!-- 自定义类日志,需输出到哪个文件: -->
    <logger name="com.yh.service.OrderService" level="INFO" additivity="false"><!-- additivity如果不设置,这类日志会输出到当前Appender和根日志的Appender(即重复输出)--><!-- 该类的全限定名,如果多个类要使用相同的日志配置,只需配置包名即可 --><appender-ref ref="ORDER_SERVICE_FILE"/><appender-ref ref="CONSOLE"/> <!-- 同时输出到控制台 -->
    </logger><!-- 根日志(其他类的日志默认走这里): -->
    <root level="INFO"><appender-ref ref="ALL_FILE"/>
    </root>
    

3.使用步骤

  • ① 导入logback相关依赖到项目中,最佳搭配:

    servlet 4.0.1
    slf4j 1.7.32
    logback-classic 1.2.10
    logback-core 1.2.10
    

    在Tomcat的localhost.log里出现“Servlet [springmvc]标记为不可用”,是因为pom.xml里的slf4j-api版本与SpringFramework冲突。

  • ② 将logback.xml直接拷贝到resources下

  • ③ 创建logback框架提供的Logger对象,然后用Logger对象调用其提供的方法,就可以记录系统的日志信息:

    public static final Logger LOGGER = LoggerFactory.getLogger(Class对象);// 一个项目中只需要一个日志对象
    
http://www.gsyq.cn/news/69246.html

相关文章:

  • 备课
  • 令牌环式同步:乒乓球对练的四种实现方式
  • 2025年11月助听器十大品牌推荐 自然之声以专业康复服务位
  • 歌声转换SVC主流方法原理剖析3 — So-VITS-SVC
  • 2025全国助听器厂家推荐榜:专业验配+全程康复成听损家
  • 超市环境智能监控方案:96.8% 识别精度,异味投诉归零
  • 小程序定制开发实战:需求拆解、UI 设计与个性化效果落地流程
  • 配电自动化(FTU、DTU、TTU)芯片国产化选择
  • 实验四 组合与继承
  • 编程题库 No.16 加班薪水UP
  • 百练PKU / 2024计算机学院推免上机考试考情分析与备考建议
  • 详细介绍:css学习盒模型:
  • python题库 No.17 大运预选
  • 基于CNN卷积神经网络和GEI步态能量提取的视频人物步态识别算法matlab仿真
  • 12/2
  • 12.13任务
  • 去颈纹用哪种颈霜效果好?2025临床数据揭秘真正有效的抗颈纹产品
  • 别再只懂二分类!逻辑回归+Softmax多分类实战,保姆级教程奉上 - 详解
  • 手把手带你通关Webug第一关:看懂SQL注入是怎么“玩”的
  • 技术总监亲述:工作授权不是甩锅,掌握这8步让团队战斗力提升300%
  • 关于Proteus在编译时提示Failed to set firmware property.的问题
  • 成群结队 - 冲刺总结
  • 从 Pandas 转向 Polars:新手常见的10 个问题与优化建议
  • 二进制兼容
  • 成群结队--冲刺计划
  • 第五天敏捷冲刺
  • Java进阶网络编程,UDP,TCP通信
  • IDEA标签窗口好行显示 类注释和方法注释
  • LabVIEW用直线边缘检测实现液位测量 - 教程
  • HEK293细胞:为什么它是重组蛋白表达的黄金标准?