Logback-使用多个实例

问题描述 投票:0回答:1

我在Android项目中使用了logback。我个人喜欢这个记录器,不会使用其他任何东西。

我开始使用GPS位置,为此,我使用了第三方库'background-geolocation-lt'。该库还使用了logback。

加载background-geolocation-lt后,我的记录器停止工作(不将日志写入文件),并且看来我的配置已被该库覆盖。 Logcat和调试控制台loggin以正确的方式-全部与文件追加程序有关。下面的代码中有更多详细信息-初始化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实例?

在此主题之前,谢谢您的帮助:

java android kotlin logback
1个回答
0
投票

尝试从logback库中排除background-geolocation-lt的传递依赖,您可以排除任何这样的传递依赖-

dependencies {
  compile('com.example.m:m:1.0') {
     exclude group: 'org.unwanted', module: 'x 
  }
  compile 'com.example.l:1.0'
}

只要确保Logback成为间接依赖关系,您就可以使用-]检查依赖关系树。

gradle dependencies
© www.soinside.com 2019 - 2024. All rights reserved.