logback-android 是否支持 DBAppender?
Does logback-android support DBAppender?
logback 的 android 实现似乎缺少 DBAppender class。
这是我的相关 logback appender 配置,位于 assets/logback.xml。
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://10.2.2.222:3306/logback</url>
<user>username</user>
<password>thepassword</password>
</connectionSource>
</appender>
和gradle:
implementation 'org.slf4j:slf4j-api:1.7.25'
implementation 'com.github.tony19:logback-android:1.1.1-12'
以及我的 logcat 中产生的错误:
20:40:50,225 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction -
Could not create an Appender of type [ch.qos.logback.classic.db.DBAppender].
ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
at ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
和
Caused by: ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
和
Caused by: java.lang.ClassNotFoundException:
Didn't find class "ch.qos.logback.classic.db.DBAppender"
Logback 正常工作,否则,如果我注释掉数据库内容并将其记录到文件中,它会正确实例化并在日志文件中生成文本。
我找到了使用 DBAppender 的人的例子,但还没有发现任何看起来是 android 基础的。
ps:我也尝试了另一个选项,DataSourceConnectionSource(与显示的 DriverManagerConnectionSource 相对),但它实际上使用相同的附加程序,因此产生相同的错误。我在 github 文件中也找不到对 DBAppender 的任何引用。
logback-android
目前不支持 DBAppender
,并且没有确定的计划来继承该功能。唯一支持的数据库附加程序是 SQLiteAppender
.
将DBAppender
的相关源代码从logback
拉到自己的库中,可以在logback-android
中使用,应该相对简单。对于未来的主要版本,我计划以这种方式拆分出几个内置的 appender 以最小化库大小。
logback 的 android 实现似乎缺少 DBAppender class。
这是我的相关 logback appender 配置,位于 assets/logback.xml。
<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://10.2.2.222:3306/logback</url>
<user>username</user>
<password>thepassword</password>
</connectionSource>
</appender>
和gradle:
implementation 'org.slf4j:slf4j-api:1.7.25'
implementation 'com.github.tony19:logback-android:1.1.1-12'
以及我的 logcat 中产生的错误:
20:40:50,225 |-ERROR in ch.qos.logback.core.joran.action.AppenderAction -
Could not create an Appender of type [ch.qos.logback.classic.db.DBAppender].
ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
at ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
和
Caused by: ch.qos.logback.core.util.DynamicClassLoadingException:
Failed to instantiate type ch.qos.logback.classic.db.DBAppender
和
Caused by: java.lang.ClassNotFoundException:
Didn't find class "ch.qos.logback.classic.db.DBAppender"
Logback 正常工作,否则,如果我注释掉数据库内容并将其记录到文件中,它会正确实例化并在日志文件中生成文本。
我找到了使用 DBAppender 的人的例子,但还没有发现任何看起来是 android 基础的。
ps:我也尝试了另一个选项,DataSourceConnectionSource(与显示的 DriverManagerConnectionSource 相对),但它实际上使用相同的附加程序,因此产生相同的错误。我在 github 文件中也找不到对 DBAppender 的任何引用。
logback-android
目前不支持 DBAppender
,并且没有确定的计划来继承该功能。唯一支持的数据库附加程序是 SQLiteAppender
.
将DBAppender
的相关源代码从logback
拉到自己的库中,可以在logback-android
中使用,应该相对简单。对于未来的主要版本,我计划以这种方式拆分出几个内置的 appender 以最小化库大小。