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>