启用外部库中的日志记录

时间:2013-01-29 03:28:30

标签: java android square

我正在使用square中的retrofit库(添加为jar依赖项),它已配置了logger。 (link

  private static final Logger LOGGER = Logger.getLogger(RestAdapter.class.getName());

如何在此库中启用日志记录(来自我的应用程序)。

我看到this

之类的支票
if (LOGGER.isLoggable(Level.FINE)) {
          logResponseBody(url, body, statusCode, elapsedTime);
        }

所以看起来,我可能必须得到这个记录器并设置日志级别。或者java logger从配置文件,环境,类路径读取loglevel设置?

我不熟悉java平台。任何有助于在控制台中记录来自此(外部)库的消息的帮助表示赞赏。例如,我需要在我的android控制台/ logCat(设置为详细级别)中查看此类(RestAdapter)中的所有日志消息。

感谢。

编辑1:

我将以下内容添加到我的入口点,我可以看到它已被调用。仍然没有相关日志

static final String LOGGER_NAME = "retrofit.http.RestAdapter";

@Override
    public void onCreate() {
        super.onCreate();
        Logger mLoggerInstance = Logger.getLogger(LOGGER_NAME);
        if (mLoggerInstance != null) {
            mLoggerInstance.setLevel(Level.FINE);
        }
    }

编辑2:

我编辑了外部库,将loglevel FINE的引用更改为DEBUG。让我看一下日志,仍然想知道仅通过记录器配置就能达到同样的效果。

我在这里看到一个帖子,但没有用。 Logging with Logger under Android

不确定,但看起来在Android中抑制了Debug下面的调试级别。 (source

1 个答案:

答案 0 :(得分:1)

这是Java Logging API。默认情况下,它使用全局jre / lib / logging.properties配置文件。您可以将其复制到您的应用程序文件夹,更改它并将其作为java arg

传递
java -Djava.util.logging.config.file=logging.properties ...

阅读Oracle的概述 http://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html或本文http://tutorials.jenkov.com/java-logging/configuration.html了解mmore详细信息