【九】Spring Boot之 日志 LogBack(普通配置、结合Mybatis打印SQL日志)

pom.xml

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>    
    <!--janino-->
    <!--若用到了logback的if标签的condition表达式,就需要该坐标-->
    <!--否则会抛出该错误:ERROR in ch.qos.logback.core.joran.conditional.IfAction - Could not find Janino library on the class path. Skipping conditional processing.-->
    <dependency>
        <groupId>org.codehaus.janino</groupId>
        <artifactId>janino</artifactId>
        <version>2.6.1</version>
    </dependency>

application.yml中相关配置

server:
  port: 8088
  context-path: /sid

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/sid
    username: root
    password: root
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
 

## 该配置节点为独立的节点,不是在在spring的节点下
mybatis:
  mapper-locations: classpath:mapping/*.xml  #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.sid.model  # 注意:对应实体类的路径
  configuration:
    log-impl:  org.apache.ibatis.logging.slf4j.Slf4jImpl
    #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #控制台打印sql

#pagehelper分页插件
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

# log config
logging:
  config: D:\gitrep\springboot\src\main\resources\logback-spring.xml





logback-spring.xml

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

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

    <!-- 文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>D:\gitrep\springboot\testlog\springboot.log</file>

        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>

        <!--滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>D:\gitrep\springboot\testlog\springboot.%d{yyyy-MM-dd}.%i</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>0</maxHistory>
        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{80}.%method:%L -%msg%n</pattern>
        </encoder>
    </appender>

<!-- 记录sql -->
    <appender name="sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>D:\gitrep\springboot\testlog\springboot-sql.log</File>
        <encoder>
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{80}.%method:%L -%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>D:\gitrep\springboot\testlog\springboot-sql.log.%d{yyyy-MM-dd}</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>
    <appender name="sql-queue" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>512</queueSize>
        <appender-ref ref="sql"/>
    </appender>

        <!--
        logger属性:
          1)name:用来指定受此logger约束的某一个包或者具体的某一个类
          2)level:用来设置打印级别,大小写无关(最常用的几种):DEBUG, INFO, WARN, ERROR
        -->
    <!-- 用于打印 Spring 在启动的时候初始化各个 Bean 的信息 -->
    <logger name="org.springframework.web" level="DEBUG"/>

    <!-- mybatis loggers -->
    <logger name="com.sid.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="sql-queue"/>
    </logger>



    <root level="info">
        <if condition='property("os.name").toUpperCase().contains("MAC") || property("os.name").toUpperCase().contains("WINDOWS") '>
            <then>
                <appender-ref ref="console"/>
            </then>
        </if>

        <appender-ref ref="FILE"/>
    </root>
</configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值