java - spring boot 配置 logback 启动错误
巴扎黑
巴扎黑 2017-04-17 17:43:05
0
1
978

我使用的是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">-->
            <!--&lt;!&ndash;格式化输出,%d:日期;%thread:线程名;%-5level:级别,从左显示5个字符宽度;%msg:日志消息;%n:换行符 &ndash;&gt;-->
            <!--<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 启动最开始有一个图案那就地方,不会往下执行 ,这是为什么 ?

巴扎黑
巴扎黑

reply all(1)
阿神

The connectionSource configuration is wrong. The class you configured does not support datasource configuration. If you want to support it, you can change it to

ch.qos.logback.core.db.DataSourceConnectionSource
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!