首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Java SE/Android)跨平台日志记录

(Java SE/Android)跨平台日志记录
EN

Stack Overflow用户
提问于 2012-10-24 08:56:38
回答 2查看 834关注 0票数 5

我希望我正在开发的这个库能够支持日志记录,但是Android和SE都有自己的日志记录方式。在SE中,您可以使用System.out.println方法或java.util.logging.Logger类。安卓使用android.util.Log登录logcat。起初我使用反射来检查android是否可用,然后在Log.class中反射地调用日志方法;但这不是一个好主意。

我的解决方案是让使用我的库的开发人员自己处理日志。它们将设置一个处理程序接口,并具有一个onLog方法

代码语言:javascript
复制
public void onLog(int level, String tag, String msg);

该库将对我的自定义Logger类中的处理程序调用onLog方法。让开发人员处理日志而不是库本身是个好主意吗?这似乎是到目前为止最好的解决方案,如果我记录的很好,那么它应该不是问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 08:33:34

我同意您的观点,日志记录应该委托给客户端,而且您自己开发的方法确实是明智的。

根据您的情况,SLF4J外观将是理想的。您的库将包含slf4j-api jar并包含SLF4J日志记录语句。如果客户端需要日志记录,他们只需将一个日志记录后端(和一个可选的配置文件)放入其应用程序的类路径中,以捕获/查看日志语句。

这种方法的优点是,它为客户端提供了获得日志记录所需的零编码的最大控制权;并且它允许客户端在许多可用后端中进行选择。

我会使用logback作为J2SE应用程序的后端,使用logback-android作为安卓系统的后端。

票数 2
EN

Stack Overflow用户

发布于 2012-10-24 13:09:55

你可以试试microlog

http://code.google.com/p/microlog4android/

它可以帮助你在android和java之间使用一致的日志记录机制。如果您使用slf4j,它可以用作microlog (对于android项目)和log4j (对于java项目)的包装器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13041550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档