Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“登录”;Java库代码“;Android应用程序的libs_Java_Android_Logging - Fatal编程技术网

“登录”;Java库代码“;Android应用程序的libs

“登录”;Java库代码“;Android应用程序的libs,java,android,logging,Java,Android,Logging,我遵循的是在一个单独的“Java库代码”项目中为我的Android应用程序实现Android设备(而不是应用程序!)独立的库代码。这使测试对我来说更容易,因为我可以像以前那样使用标准的maven项目布局、Spring测试支持和连续构建系统。我不想在我的Android应用程序项目中混用这个,尽管这是可能的 我现在想知道如何在这个库中实现日志记录。由于这个库将在Android设备上使用,我想使用Android.util.Log。我在项目中添加了以下依赖项,以获取缺少的Android软件包/类和依赖项

我遵循的是在一个单独的“Java库代码”项目中为我的Android应用程序实现Android设备(而不是应用程序!)独立的库代码。这使测试对我来说更容易,因为我可以像以前那样使用标准的maven项目布局、Spring测试支持和连续构建系统。我不想在我的Android应用程序项目中混用这个,尽管这是可能的

我现在想知道如何在这个库中实现日志记录。由于这个库将在Android设备上使用,我想使用
Android.util.Log
。我在项目中添加了以下依赖项,以获取缺少的Android软件包/类和依赖项:

<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>android</artifactId>
    <version>2.2.1</version>
    <scope>provided</scope>
</dependency>
当运行我的单元测试时。我如何实现在Android设备上工作但在外部不会失败的日志记录(我不希望它工作,但它一定不会失败)

谢谢你的建议
克劳斯


目前,我将采用变通方法来捕捉android之外的异常,但希望有更好的解决方案

try {
    Log.d("me", "hello");
} catch (RuntimeException re) {
    // ignore failure outside android
}

这两个指向android开源项目(,)镜像的链接似乎表明android上java.util.Logging的默认处理程序委托给了android.util.Log,因此在您的库中,您应该能够只使用java.util.Logging API


我找不到有关此行为的任何进一步文档

您可以使用此代码段:

java.util.logging.Logger.getLogger("SOME_TAG").log(Level.INFO, "log message")
在android logger中,它将如下所示:

2019-03-12 14:14:20.143 31195-32138/your.package.name I/SOME_TAG: log message
这在任何地方都适用:

java.util.logging.Logger.getLogger("YOUR_TAG").log(java.util.logging.Level.INFO, "message");

这个很好用!经过这么多年的java开发,现在将首次使用java.util.logging……注意:Android默认只显示信息级别或更高级别。更多信息:上面提到的链接(GrepCode)都是死信:Android默认只显示信息级别或更高级别。有关更多信息:
java.util.logging.Logger.getLogger("YOUR_TAG").log(java.util.logging.Level.INFO, "message");