springboot中logging配置

本文详细介绍了一种基于logback的日志配置方案,包括日志文件的滚动策略、不同级别的日志输出路径及文件名模式,同时提供了控制台输出的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在application.properties文件中配置
这里写图片描述

2.在logback-spring.xml配置有关信息

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan 配置文件如果发生改变,将会被重新加载  scanPeriod 检测间隔时间-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>zlyPay-log</contextName>

     <!--  info 地址 -->
    <property name="log.path" value="D:\\log\\" />
    <property name="log.file" value="D:\\log\\logback.log" />

    <!-- errr,错误路径 -->
    <property name="log.path.error" value="D:\\log\\error\\" />
    <property name="log.file.error" value="D:\\log\\error\\logback-error.log" />

    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <!-- 普通日志 -->
    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.file}</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志命名:单个文件大于128MB 按照时间+自增i 生成log文件 -->
            <fileNamePattern>${log.path}zlyPay-log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>512MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 最大保存时间:30天-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <append>true</append>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 显示所有的日志记录
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter> -->
    </appender>

     <!-- 错误日志 -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.file.error}</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志命名:单个文件大于2MB 按照时间+自增i 生成log文件 -->
            <fileNamePattern>${log.path.error}zlyPay-log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>128MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 最大保存时间:180天-->
            <maxHistory>180</maxHistory>
        </rollingPolicy>
        <append>true</append>
        <!-- 日志格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 日志级别过滤器 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 过滤的级别 -->
             <level>ERROR</level>
             <!-- 匹配时的操作:接收(记录) -->
             <onMatch>ACCEPT</onMatch>
             <!-- 不匹配时的操作:拒绝(不记录) -->
             <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 控制台 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志格式 -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <!-- 只有这个日志权限才能看,sql语句 -->
            <level>DEBUG</level>
        </filter>
    </appender>

    <!-- 输出sql日志 -->
    <logger name="com.cltx.mapper" level="DEBUG"></logger>

    <!-- additivity 避免执行2次 -->
    <logger name="com.cltx"  level="INFO"  additivity="false">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </logger>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="INFO_FILE" />
        <appender-ref ref="ERROR_FILE" />
    </root>

</configuration>
### Spring Boot 日志配置格式示例与解释 在Spring Boot应用程序中,默认情况下使用Logback作为日志框架。可以通过`application.properties`或`application.yml`文件来配置日志级别和其他设置。 #### 使用 `application.properties` 通过简单的属性定义可以控制不同包的日志记录行为: ```properties logging.level.root=WARN logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR ``` 这些条目分别设置了根日志器的最低报告等级为警告(WARN),而针对Web层组件则启用了调试模式以便于开发期间更详细的输出;对于Hibernate相关的消息仅当达到错误(ERORR)程度才会被记录下来[^1]。 #### 配置外部化日志路径及文件名 为了便于管理和检索历史日志数据,通常会指定特定位置保存日志文件而不是默认的标准输出流: ```properties logging.file.name=./logs/app.log # 或者使用目录形式存储多天的日志档案 logging.file.path=/var/log/myapp/ ``` 上述命令将创建名为`app.log`的日志文件位于当前工作目录下的`./logs/`子文件夹内;后者会在给定路径下按日期分隔多个日志文档[^2]。 #### 自定义 Logback 配置 如果需要更加精细地调整日志策略,则可以直接提供完整的XML格式的Logback配置文件(`logback-spring.xml`)并放置于类路径资源中。此方式允许开发者利用高级特性如异步写入、滚动策略等优化性能表现。 ```xml <configuration> <!-- 定义控制台输出 --> <consoleAppender name="STDOUT"> ... </consoleAppender> <!-- 文件追加器 --> <rollingFileAppender name="FILE" fileName="./logs/application-%d{yyyy-MM-dd}.log" filePattern="./archive/logs/application-%d{yyyy-MM-dd}-%i.log.gz"> ... </rollingFileAppender> <!-- 设置全局日志级别以及附加到哪些目标上 --> <root level="info"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root> </configuration> ``` 这段代码片段展示了如何构建一个既能在终端显示又能够定期归档至压缩文件中的混合型日志系统结构。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值