我在我的 Android 项目中使用 logback。我个人很喜欢这个记录器,不会使用其他任何东西。
我开始使用 GPS 位置,为此,我使用了第三方库 'background-geolocation-lt '。这个库也使用了 logback。
加载background-geolocation-lt后,我的记录器停止工作(不将日志写入文件),并且似乎我的配置已被该库覆盖。以正确的方式 Logcat 和调试控制台登录 - 这都是关于文件附加程序的。更多详细信息请参见下面的代码 - 初始化 bgGeo 后,消息“我没有写入文件”尚未写入文件。
class MainActivity : AppCompatActivity() {
private val logger = LoggerFactory.getLogger(MainActivity::class.java)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// some other code
logger.info("I'm writing to file")
val bgGeo =
BackgroundGeolocation.getInstance(applicationContext, intent)
logger.info("I'm not writing to file")
}
}
我的配置文件非常简单:
<configuration>
<property name="LOG_DIR" value="${DATA_DIR}/logs" />
<appender name="logcat" class="ch.qos.logback.classic.android.LogcatAppender">
<tagEncoder>
<pattern>%logger{12}</pattern>
</tagEncoder>
<encoder>
<pattern>%msg</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.FileAppender">
<file>${LOG_DIR}/current_log.txt</file>
<encoder>
<pattern>%d{dd.MM.yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="file" />
<appender-ref ref="logcat" />
</root>
</configuration>
我的问题是:
是否可以使用单独的配置和记录器工厂创建一个单独的 logback 实例?
预先感谢您对此主题的任何帮助:)
最佳答案
尝试从 background-geolocation-lt
库中排除 logback
的传递依赖,您可以排除像这样的任何传递依赖 -
dependencies {
compile('com.example.m:m:1.0') {
exclude group: 'org.unwanted', module: 'x
}
compile 'com.example.l:1.0'
}
为了确保 Logback 作为间接依赖项出现,您可以使用 - 检查依赖关系树 -
gradle dependencies
关于java - Logback - 使用多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59514058/