我使用的是spring-boot 1.3 logback-1.1.5 版本
首先是boot配置
# Mysql
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/test2?createDatabaseIfNotExist=true
spring.datasource.username = root
spring.datasource.password = root
# jpa
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
## log
logging.level.com.trs.trsirp = DEBUG
#logging.file = logs/logback.log
接下来是logback配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<!--<property name="LOG_HOME" value="/home" />-->
<!-- 控制台输出 -->
<!--<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">-->
<!--<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
<!--<!–格式化输出,%d:日期;%thread:线程名;%-5level:级别,从左显示5个字符宽度;%msg:日志消息;%n:换行符 –>-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - -->
<!--%msg%n</pattern>-->
<!--</encoder>-->
<!--</appender>-->
<!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder"
level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor"
level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
<!--日志异步到数据库 -->
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<!--日志异步到数据库 -->
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<!--连接池 -->
<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://localhost:3306/test2</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<!--<appender-ref ref="STDOUT" />-->
<appender-ref ref="DB" />
</root>
</configuration>
在接下来是报错:
Exception in thread "main" java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@28:66 - no applicable action for [dataSource], current ElementPath is [[configuration][appender][connectionSource][dataSource]]
如果把配置里面的
dataSource
去掉就可以运行,但是为什么加上就出现这样的错误 ?
第二个问题就是如果把
root 标签的level改成debug
启动就会卡在spring-boot 1.3 启动最开始有一个图案那就地方,不会往下执行 ,这是为什么 ?
connectionSource配置错了,你配置的那个类不支持datasource配置。要支持的话,可以换成