SpringBoot项目 配置日志生成文件

本文介绍了在Spring Boot项目中使用Logback进行日志配置的详细步骤,包括版本选择、配置文件详解、遇到的常见问题如标签位置和不支持的标签,以及如何通过调整日志滚动策略实现分钟级文件生成。还推荐了相关学习资源。

目录

版本

遇到的坑

效果

 日志学习


版本

ch.qos.logback:logback-classic:1.2.3

ch.qos.logback:logback-core:1.2.3

配置:

yml 里面的配置:

#日志输出配置
logging:
  config: classpath:log4j2-spring.xml
  file:
    path: .

在rsources目录下生成一个xml文件:log4j2-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">

    <contextName>lxw</contextName>

    <!--输出到控制台-->
    <appender name="console1" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,
        所以我们使用下面的策略,可以避免输出 Error 的日志-->
        <!--       <filter class="ch.qos.logback.classic.filter.LevelFilter">
                   &lt;!&ndash;过滤 Error&ndash;&gt;
                   <level>ERROR</level>
                   &lt;!&ndash;匹配到就禁止&ndash;&gt;
                   <onMatch>DENY</onMatch>
                   &lt;!&ndash;没有匹配到就允许&ndash;&gt;
                   <onMismatch>ACCEPT</onMismatch>
               </filter>-->

        <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
        如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
        的日志改名为今天的日期。即,<File> 的日志都是当天的。
        -->
        <File>logs/name_tmp.log</File>
        <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
            <FileNamePattern>logs/name.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 按分钟生成日志 【手动狗头】 -->
             <!--<FileNamePattern>logs/name.%d{yyyy-MM-dd_HH_mm}.log</FileNamePattern>-->
           
            <!--只保留最近90天的日志-->
            <maxHistory>60</maxHistory>
            <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
            <!--<totalSizeCap>1GB</totalSizeCap>-->
        </rollingPolicy>
        <!--日志输出编码格式化-->
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console1"/>
        <appender-ref ref="logFile"/>
    </root>
</configuration>

遇到的坑

1. <root>标签需要放到最后面,否则会提示异常,提示

Did you define it below instead of above in the configuration file?

[您是否在配置文件中在下面而不是上面定义了它?]

2.我目前的项目版本发现不支持<Properties>这个标签,

一开始显示错误:

logback在SpringBoot下出现no applicable action for [appender], current ElementPath is [[configuration]

后来xm的子标签,一个个去掉尝试才发现,,,

,没找到原因,估计是版本不支持,所以变量提取这块,也就不设置了,也不是很麻烦。

3.设置成每分钟生成一个配置文件,如下:<FileNamePattern>logs/cityInsuredMonitorReport.%d{yyyy-MM-dd_HH_mm}.log</FileNamePattern>

其实就是配置文件里面的日期格式往后继续写,即可,类推,一个小时一个文件,也是这样。

效果

因为一天一个文件,没法测试,可以修改成一分钟一个文件,测试生成效果,如下图,如果某个分钟内没有日志,那么就不会有日志文件。

 日志学习

如果想具体学习这块知识可以参考这个大佬的博客:

https://www.cnblogs.com/bigben0123/p/7895696.html

 参考博客:

https://www.cnblogs.com/bigben0123/p/7895696.html

https://blog.youkuaiyun.com/wu_qing_song/article/details/112539178

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值