在springboot 的官方文档中,关于springboot集成logback的说明中提到【https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#boot-features-logback-extensions】

集成logback到springboot中,有以下几个注意点。

1. 将logback的配置改为:logback-spring.xml 

2. 在logback-spring.xml配置引用springboot的配置信息。使用 springProperty 节点进行配置引用即可

在springboot的application.yml中配置

#日志配置 logback: path: ./jezs_logs

在logback-spring.xml中引用此配置项 <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 日志存放路径 --> <springProperty scope="context" name="log.path" source="logback.path"/> <!-- 日志输出格式 --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>

&lt;!-- 控制台输出 --&gt;
&lt;appender name=<span style="color: #800000;">"</span><span style="color: #800000;">console</span><span style="color: #800000;">"</span> <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.ConsoleAppender</span><span style="color: #800000;">"</span>&gt;
    &lt;encoder&gt;
        &lt;pattern&gt;${log.pattern}&lt;/pattern&gt;
    &lt;/encoder&gt;
&lt;/appender&gt;

&lt;!-- 识别的API日志输出 --&gt;
&lt;appender name=<span style="color: #800000;">"</span><span style="color: #800000;">jezs</span><span style="color: #800000;">"</span> <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.RollingFileAppender</span><span style="color: #800000;">"</span>&gt;
    &lt;file&gt;${log.path}/ocr-info.log&lt;/file&gt;
    &lt;!-- 循环政策:基于时间创建日志文件 --&gt;
    &lt;rollingPolicy <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.TimeBasedRollingPolicy</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 日志文件名格式 --&gt;
        &lt;fileNamePattern&gt;${log.path}/jezs.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
        &lt;!-- 日志最大的历史 60天 --&gt;
        &lt;maxHistory&gt;<span style="color: #800080;">60</span>&lt;/maxHistory&gt;
    &lt;/rollingPolicy&gt;
    &lt;encoder&gt;
        &lt;pattern&gt;${log.pattern}&lt;/pattern&gt;
    &lt;/encoder&gt;
    &lt;filter <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.classic.filter.LevelFilter</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 过滤的级别 --&gt;
        &lt;level&gt;INFO&lt;/level&gt;
        &lt;!-- 匹配时的操作:接收(记录) --&gt;
        &lt;onMatch&gt;ACCEPT&lt;/onMatch&gt;
        &lt;!-- 不匹配时的操作:拒绝(不记录) --&gt;
        &lt;onMismatch&gt;DENY&lt;/onMismatch&gt;
    &lt;/filter&gt;
&lt;/appender&gt;

&lt;!-- 系统日志输出 --&gt;
&lt;appender name=<span style="color: #800000;">"</span><span style="color: #800000;">file_info</span><span style="color: #800000;">"</span> <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.RollingFileAppender</span><span style="color: #800000;">"</span>&gt;
    &lt;file&gt;${log.path}/sys-info.log&lt;/file&gt;
    &lt;!-- 循环政策:基于时间创建日志文件 --&gt;
    &lt;rollingPolicy <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.TimeBasedRollingPolicy</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 日志文件名格式 --&gt;
        &lt;fileNamePattern&gt;${log.path}/sys-info.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
        &lt;!-- 日志最大的历史 60天 --&gt;
        &lt;maxHistory&gt;<span style="color: #800080;">60</span>&lt;/maxHistory&gt;
    &lt;/rollingPolicy&gt;
    &lt;encoder&gt;
        &lt;pattern&gt;${log.pattern}&lt;/pattern&gt;
    &lt;/encoder&gt;
    &lt;filter <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.classic.filter.LevelFilter</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 过滤的级别 --&gt;
        &lt;level&gt;INFO&lt;/level&gt;
        &lt;!-- 匹配时的操作:接收(记录) --&gt;
        &lt;onMatch&gt;ACCEPT&lt;/onMatch&gt;
        &lt;!-- 不匹配时的操作:拒绝(不记录) --&gt;
        &lt;onMismatch&gt;DENY&lt;/onMismatch&gt;
    &lt;/filter&gt;
&lt;/appender&gt;

&lt;appender name=<span style="color: #800000;">"</span><span style="color: #800000;">file_error</span><span style="color: #800000;">"</span> <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.RollingFileAppender</span><span style="color: #800000;">"</span>&gt;
    &lt;file&gt;${log.path}/sys-error.log&lt;/file&gt;
    &lt;!-- 循环政策:基于时间创建日志文件 --&gt;
    &lt;rollingPolicy <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.TimeBasedRollingPolicy</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 日志文件名格式 --&gt;
        &lt;fileNamePattern&gt;${log.path}/sys-error.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
        &lt;!-- 日志最大的历史 60天 --&gt;
        &lt;maxHistory&gt;<span style="color: #800080;">60</span>&lt;/maxHistory&gt;
    &lt;/rollingPolicy&gt;
    &lt;encoder&gt;
        &lt;pattern&gt;${log.pattern}&lt;/pattern&gt;
    &lt;/encoder&gt;
    &lt;filter <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.classic.filter.LevelFilter</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 过滤的级别 --&gt;
        &lt;level&gt;ERROR&lt;/level&gt;
        &lt;!-- 匹配时的操作:接收(记录) --&gt;
        &lt;onMatch&gt;ACCEPT&lt;/onMatch&gt;
        &lt;!-- 不匹配时的操作:拒绝(不记录) --&gt;
        &lt;onMismatch&gt;DENY&lt;/onMismatch&gt;
    &lt;/filter&gt;
&lt;/appender&gt;

&lt;!-- 用户访问日志输出  --&gt;
&lt;appender name=<span style="color: #800000;">"</span><span style="color: #800000;">sys-user</span><span style="color: #800000;">"</span> <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.RollingFileAppender</span><span style="color: #800000;">"</span>&gt;
    &lt;file&gt;${log.path}/sys-user.log&lt;/file&gt;
    &lt;rollingPolicy <span style="color: #0000ff;">class</span>=<span style="color: #800000;">"</span><span style="color: #800000;">ch.qos.logback.core.rolling.TimeBasedRollingPolicy</span><span style="color: #800000;">"</span>&gt;
        &lt;!-- 按天回滚 daily --&gt;
        &lt;fileNamePattern&gt;${log.path}/sys-user.%d{yyyy-MM-dd}.log&lt;/fileNamePattern&gt;
        &lt;!-- 日志最大的历史 60天 --&gt;
        &lt;maxHistory&gt;<span style="color: #800080;">60</span>&lt;/maxHistory&gt;
    &lt;/rollingPolicy&gt;
    &lt;encoder&gt;
        &lt;pattern&gt;${log.pattern}&lt;/pattern&gt;
    &lt;/encoder&gt;
&lt;/appender&gt;

&lt;!-- 系统模块日志级别控制  --&gt;
&lt;logger name=<span style="color: #800000;">"</span><span style="color: #800000;">com.wycms</span><span style="color: #800000;">"</span> level=<span style="color: #800000;">"</span><span style="color: #800000;">info</span><span style="color: #800000;">"</span>/&gt;
&lt;!-- Spring日志级别控制  --&gt;
&lt;logger name=<span style="color: #800000;">"</span><span style="color: #800000;">org.springframework</span><span style="color: #800000;">"</span> level=<span style="color: #800000;">"</span><span style="color: #800000;">warn</span><span style="color: #800000;">"</span>/&gt;

&lt;root level=<span style="color: #800000;">"</span><span style="color: #800000;">info</span><span style="color: #800000;">"</span>&gt;
    &lt;appender-<span style="color: #0000ff;">ref</span> <span style="color: #0000ff;">ref</span>=<span style="color: #800000;">"</span><span style="color: #800000;">console</span><span style="color: #800000;">"</span>/&gt;
&lt;/root&gt;

&lt;!--系统操作日志--&gt;
&lt;root level=<span style="color: #800000;">"</span><span style="color: #800000;">info</span><span style="color: #800000;">"</span>&gt;
    &lt;appender-<span style="color: #0000ff;">ref</span> <span style="color: #0000ff;">ref</span>=<span style="color: #800000;">"</span><span style="color: #800000;">file_info</span><span style="color: #800000;">"</span>/&gt;
    &lt;appender-<span style="color: #0000ff;">ref</span> <span style="color: #0000ff;">ref</span>=<span style="color: #800000;">"</span><span style="color: #800000;">file_error</span><span style="color: #800000;">"</span>/&gt;
&lt;/root&gt;

&lt;!--系统用户操作日志--&gt;
&lt;logger name=<span style="color: #800000;">"</span><span style="color: #800000;">sys-user</span><span style="color: #800000;">"</span> level=<span style="color: #800000;">"</span><span style="color: #800000;">info</span><span style="color: #800000;">"</span>&gt;
    &lt;appender-<span style="color: #0000ff;">ref</span> <span style="color: #0000ff;">ref</span>=<span style="color: #800000;">"</span><span style="color: #800000;">sys-user</span><span style="color: #800000;">"</span>/&gt;
&lt;/logger&gt;

&lt;!--请求第三方接口的日志信息--&gt;
&lt;logger name=<span style="color: #800000;">"</span><span style="color: #800000;">jezs</span><span style="color: #800000;">"</span> level=<span style="color: #800000;">"</span><span style="color: #800000;">info</span><span style="color: #800000;">"</span>&gt;
    &lt;appender-<span style="color: #0000ff;">ref</span> <span style="color: #0000ff;">ref</span>=<span style="color: #800000;">"</span><span style="color: #800000;">jezs</span><span style="color: #800000;">"</span>/&gt;
&lt;/logger&gt;

</configuration>


3 查看配置以及结果<springProperty scope="context" name="log.path" source="logback.path"/>
其中:log.path 为logback.xml中配置的参数,其值为logback.path,是在springboot中配置节设置的
查看生成的日志目录