我有一个sampleApplication,它只有一个类,类名为Test
以下是设想情况:
Case1:
public class Test {
public void callme()
{
System.out.println("Inside Call me Method");
}
}Case2:
public class Test {
private static final Logger log = LoggerFactory.getLogger(Test.class);
public void callme()
{
log.info("Inside Call me Mthod using logback");
}
}用例如下:
当我将测试类打包到jar中并在android应用程序日志中使用它时,我必须将这个Test.class打包到一个jar中,并使用它,当我将测试类打包到jar中时,我可以看到sysout语句。
但是根据实践,sysouts必须被一些日志框架所取代。
因此,我尝试了scenario2,我与Test一起实现了logback,并捆绑了jar并在android项目中使用。应用程序失败并抛出了一个异常,因为在android中缺少依赖slf4j、logback经典和logback核心,我试图将它们添加到android build.gradle file..it中仍然没有帮助.
问题:
我已经实现了所有的功能代码,并且无法在那里实现logging.Is,也无法实现日志记录。
注意:我知道在安卓系统中我们使用的是Android.util.Log...but,在project..but中,我的jar是用java开发的外部jar,它没有访问Android.util.Log..Hope的权限,问题很明显。
我是否应该考虑构建一个...Or库,而不是普通的jar,然后将其插入到android中,那么过程是什么呢?如果问题的框架不清楚,很抱歉
发布于 2016-03-21 17:45:29
在我的工作的大型项目中,我们使用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-10-09 11:04:26
对我来说,在应用程序的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-03-21 17:47:53
如果您确实需要导出日志功能,最好的方法是创建一个日志接口,让用户实现它并传递一个实例。这样他们就可以把它连接到他们想要使用的任何日志记录系统上。
https://stackoverflow.com/questions/36138101
复制相似问题