0

我有一个 sampleApplication,它只有一个类,类名是 Test

以下是场景:

情况1:

public class Test {

    public void callme()
    {
        System.out.println("Inside Call me Method");
    }
}

案例2:

public class Test {
    private static final Logger log = LoggerFactory.getLogger(Test.class);
    public void callme()
    {
        log.info("Inside Call me Mthod using logback");
    }
}

用例如下:

我必须将此 Test.class 捆绑到一个 jar 中并使用它 android 项目..如果我将测试类捆绑在 jar 中并在 android 项目中使用它...在 android 应用程序日志中,我能够看到 sysout 语句.

但根据实践,必须用一些日志框架替换 sysouts。

所以我尝试了scenario2,我已经实现了logback以及测试类,并捆绑了jar并在android项目中使用。应用程序失败并抛出异常,因为 android 中缺少依赖项 slf4j、logback 经典和 logback 核心,我试图将它们添加到 android build.gradle 文件中..它仍然没有帮助....

问题:

我已经实现了所有功能代码,但无法实现日志记录。有什么方法可以实现日志记录

注意:我知道在android中我们使用Android.util.Log ...但那是在android项目中..但是我的jar是用java开发的外部jar,它无法访问Android.util.Log ..希望问题很清楚..

有什么方法可以实现日志记录...或者我应该考虑构建一个 android 库而不是普通的 jar 并将其插入 android 项目..如果是这样,过程是什么?抱歉,如果问题的框架不清楚

4

3 回答 3

2

build.gradle对我来说,在应用程序的依赖项部分添加以下 Gradle 依赖项是可行的:

compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
compile group: 'org.slf4j', name: 'slf4j-android', version: '1.7.21'
于 2016-10-09T11:04:26.713 回答
2

在我工作的大型项目中,我们使用 SLF4j,它适用于名称 android 项目以及 Java 库项目。SFL4J 实际上在最近的版本中进行了一些优化以正常工作。你甚至可以包含一个 NOOP 版本来发布,它将删除所有日志语句。祝你好运。

要添加的依赖项: slf4jNoOp : "org.slf4j:slf4j-api:$versions.slf4j", //compile slf4jAndroid : "org.slf4j:slf4j-android:$versions.slf4j", //release

示例使用: private static final Logger LOGGER = LoggerFactory.getLogger(NYTApplication.class); LOGGER.info("Info Log"); https ://github.com/qos-ch/slf4j

于 2016-03-21T17:45:29.370 回答
0

如果你真的需要导出日志功能,最好的方法是创建一个日志接口,让用户实现它并传入一个实例。这样他们就可以将它连接到他们想要使用的任何日志系统。

于 2016-03-21T17:47:53.930 回答