SpringBoot整合logbak.xml输出日志到指定目录


前言

springboot整合logback,设置输出日志。

logback是一款开源日志组件,属于Log4j的升级版本。

日志级别有(从高到低):FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),TRACE(跟踪)或者 OFF(关闭),默认的日志配置在消息写入时将消息回显到控制台。

一、logging.file属性指定日志文件路径

默认情况下,SpringBoot日志只记录到控制台,不写日志文件。因此,如果仅需要简单的设置日志,则可以选择在application.yml文件中作如下的配置即可:

logging:
  level:
    root: info #日志级别
  file:
    name: E:/Project_code/logs/spring-dev.log #文件路径

启动项目,可以看到指定目录下已经生成了配置的日志文件。

二、使用logback.xml文件扩展配置

SpringBoot默认扫描classpath下面的logback.xml、logback-spring.xml配置文件,所以不需要再指定spring.logging.config, 一般我们将 logback.xml 文件直接放到 resource目录下即可。
logback.xml配置文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--scan属性为true时表示配置文件爱你如果发生变更,将会被重新加载;scanPeriod默认单位是毫秒-->
<configuration debug="false" scan="true" scanPeriod="3 seconds">

    <contextName>logback</contextName>
    <property name="log.path" value="logs/springboot-mybatisplus.log"/>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH-mm-ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
        </filter>
    </appender>

    <!--输出日志到文档-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}</file>
        <!--日志记录器的滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>30KB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保存天数-->
            <maxHistory>2</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH-mm-ss.SSS} %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
        </filter>
    </appender>
    <!--root节点用于指定全局日志级别-->
    <root level="debug">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>
    <!--指定具体包目录下的日志级别,可用于日志输出过滤,此处配置的优先级高于root配置的日志输出级别-->
    <logger level = 'warn' name = 'org.springframework'/>
    <logger level = 'info' name = 'com.baomidou.mybatisplus'/>
    <logger level = 'error' name = 'com.alibaba'/>
</configuration>

文件存放位置:
在这里插入图片描述

启动项目可能会出现如下报错,是因为对应的属性没有给定class路径。
在这里插入图片描述
在这里插入图片描述
只需要,标签加上class配置就好了:

<filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>debug</level>
</filter>

<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    <maxFileSize>30KB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>

正常启动日志:
在这里插入图片描述
配置了文件最大值为30kb,当文件大小超过这个值时就会按照配置的格式生成对应的压缩包日志文件。
在这里插入图片描述

总结

配置springboot日志输出文件时,如果logback.xml配置文件中没有涉及读取全局配置文件(例如application.properties)中的属性时,将文件命名为logback.xml没有问题;一旦有涉及读取全局配置文件中的属性值时,日志配置文件要命名为logback-spring.xml,因为这里涉及到一个加载顺序的问题(logback.xml会在application.properties加载之前加载,logback-spring.xml会在application.properties加载之后加载)。

参考文章:https://blog.csdn.net/zzyOuzhenyu/article/details/82854434

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Boot项目的logback.xml配置,可以按照以下步骤进行设置: 1. 在src/main/resources目录下创建logback.xml文件。 2. 在logback.xml文件中,首先需要引入logback的命名空间和标签,例如: ``` <configuration xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback http://ch.qos.logback/xml/ns/logback/logback.xsd"> ``` 3. 设置日志输出的级别,可以使用`<root>`标签设置全局的日志级别,例如: ``` <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> ``` 4. 配置日志输出的格式,使用`<pattern>`标签设置输出格式的模式,例如: ``` <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> ``` 5. 配置日志输出的目标,可以使用`<appender>`标签配置输出到控制台或文件,例如: ``` appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/myapp.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> ``` 6. 配置日志文件的滚动策略,可以使用`<rollingPolicy>`标签配置日志文件的滚动策略,例如: ``` <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/myapp.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/myapp-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> ``` 7. 配置日志的异步输出,可以使用`<asyncAppender>`标签配置日志的异步输出,例如: ``` <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </appender> <root level="INFO"> <appender-ref ref="ASYNC"/> </root> ``` 8. 结束配置文件,使用`</configuration>`标签结束配置文件。 以上是一般的logback.xml配置示例,您可以根据项目的具体需求进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Springboot logback.xml配置详解](https://blog.csdn.net/zch981964/article/details/129085279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值