繁体   English   中英

使用logback-android时无法记录日志

[英]Unable logging when use logback-android

我正在尝试将日志记录库从logback更改为logback-android但这听起来像是我做错了什么。 在我的android项目中:

AndroidManifest.xml

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />

<logback>
    <configuration>
        <appender
            name="LOGCAT"
            class="ch.qos.logback.classic.android.LogcatAppender">
            <tagEncoder>
                <pattern>%logger{0}</pattern>
            </tagEncoder>
            <encoder>
                <pattern>blahblah: [%method] > %msg%n</pattern>
            </encoder>
        </appender>
        <root level="TRACE">
            <appender-ref ref="LOGCAT"/>
        </root>
    </configuration>
</logback>

<application
    android:label="@string/custom_app_name" android:debuggable="true"
    android:icon="@drawable/app_icon"
    android:name="blah.blah"
    android:allowBackup="false"
    android:theme="@android:style/Theme.Holo.Light.NoActionBar">
</application>

和pom文件,以防万一,

<dependencies>
    ...
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-android</artifactId>
        <version>${ch.qos.logback}</version>
    </dependency>
    ...
</dependencies>

和pom文件,以防万一,

<dependencies>
    ...
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.github.tony19</groupId>
        <artifactId>logback-android-core</artifactId>
        <version>${logback-android-core}</version>
    </dependency>
    <dependency>
        <groupId>com.github.tony19</groupId>
        <artifactId>logback-android-classic</artifactId>
        <version>${logback-android-classic}</version>
    </dependency>
    ...
</dependencies>

在两种情况下

<properties>
    <org.slf4j>1.7.21</org.slf4j>
    <ch.qos.logback>1.0.6-1</ch.qos.logback>
    <logback-android-core>1.1.1-5</logback-android-core>
    <logback-android-classic>1.1.1-5</logback-android-classic>
</properties>

和代码

private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Tester.class);

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_tester);

    findViewById(R.id.btnTest).setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            logger.debug("OK!");
        }
    });
}

现在,如果我使用pom(1)(并因此使用logback ),那么一切都很好,并且我在LOGCAT窗口中接收到日志,但是如果我将依赖项更改为logback-android (如pom(2)所示),则什么也不会发生,并且听起来好像有不再记录。

怎么了

我已经根据这里提到的内容设置了logback-android配置

由于版本1.0.8-1的更改,默认情况下(作为优化), logback-android不再搜索AndroidManifest.xml 因此,必须将配置移至assets/logback.xml或者必须设置初始化搜索路径

这里可以找到更多信息,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM