【问题标题】:Android: Can't get logs with SLF4J-AndroidAndroid:无法使用 SLF4J-Android 获取日志
【发布时间】:2011-02-03 17:56:53
【问题描述】:

我正在 ADT 中使用 Maven 构建一个非常简单的 Android 项目。我已经包含了 slf4j-api 和 slf4j-android 依赖项,我可以看到一切都在正确编译。但是,当我在 Nexus One 上运行或调试应用程序时,我看不到任何日志输出。我应该在一个特定的地方寻找这些日志,还是应该在 Eclipse 控制台中显示它们?

作为参考,这是我的主要活动:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import android.app.ListActivity;
import android.os.Bundle;

public class HomeActivity extends ListActivity {

private static Logger logger = LoggerFactory.getLogger(HomeActivity.class);

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        logger.debug("onCreate");
    }
}

【问题讨论】:

  • 我会说这是不可能的,因为您使用的是 slf4j-android。我不认为您可以将普通的 slf4j 与 log4j 或 logback 等其他 impl 一起使用。如果您有 2 个 slf4,则取决于 JVM 将加载哪个,因此两者都无法工作。如果您只想记录到 Eclipse 控制台,请使用普通 SLF4J + IMPL(log4j 或 logback)。

标签: android slf4j


【解决方案1】:

默认情况下,Android 告诉 slf4j-android 不要记录调试消息,而 log4j 足够礼貌地尊重这一点。改用不礼貌的https://github.com/mvysny/slf4j-handroid :)

【讨论】:

  • 如果在JVM中执行相同的模块,是否可以从Log切换到System.out?
  • 抱歉,这目前是不可能的,并且可能违反了 slf4j 的理念,即 slf4j-impl 应该是一个只为一个日志后端量身定制的小型库。
【解决方案2】:

我也使用 slf4j 进行日志记录。日志输出显示在 LogCat 窗口中。我不确定是否有办法在 Eclipse 控制台中看到它。在 Eclipse 顶级菜单中,导航到:Window -> Show View -> Other。当对话框出现时,展开“Android”,然后选择“LogCat”。不幸的是,默认情况下它不会显示。

HTH,

凯文

【讨论】:

  • 谢谢,成功了。我认为它可能正在做类似的事情。它以它的方式格式化它有点奇怪,但是嘿,它有效:)
【解决方案3】:

您可能想看看将 slf4j 与 android-logging-log4j 一起使用。另见log4j support in Android

【讨论】:

    猜你喜欢
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多