SpringBoot集成Logback

111 阅读1分钟
  • springboot框架已经引入了logback依赖,因此不需要再加入依赖,springboot会自动查找类路径下的logback-spring.xml文件

  • 在类上加@Slf4j注解,则默认生成了一个名为log的Logger对象,直接使用就可以了

  • 在logback.xml中配置的日志是默认级别,application.properties中配置的优先级最高

  • mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl不受日志框架约束

  • 新建logback.xml文件放在resources目录下,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <property name="log.project" value="yh-api-service"/>
        <property name="log.home" value="logs"/>
        <property name="log.level" value="INFO"/>
        <property name="log.max.file.size" value="50MB"/>
        <property name="log.max.history" value="360"/>
        
        <!-- 定义日志信息的格式-->
        <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level [%logger.%method:%line] >>> %msg %n" />
    
        <!-- 控制台输出 -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>${FILE_LOG_PATTERN}</pattern>  <!--日志格式 -->
                <charset>utf8</charset>
            </encoder>
        </appender>
    
    
        <!--日志写入文件 -->
        <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--存储路径-->
            <file>${log.home}/${log.project}.log</file>
            
            <!--归档策略 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>${log.home}/${log.project}_%d{yyyy-MM-dd}.log</FileNamePattern>
                <MaxHistory>${log.max.history}</MaxHistory>
            </rollingPolicy>
            
            <!--日志格式 -->
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
        </appender>
    
    	<!--日志要输出的appender-->
       <root level="info">
           <appender-ref ref="console" />
           <appender-ref ref="file" />
       </root>
    </configuration>