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

时间:2012-10-24 00:56:38

标签: java android logging

我想要这个库我正在努力获得日志记录支持,但Android和SE有自己的日志记录方式。在SE中,您可以使用System.out.println方法或java.util.logging.Logger类。 Android使用android.util.Log登录logcat。起初我使用反射检查android是否可用,然后反复调用Log.class中的日志方法;但这不是一个好主意。

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

public void onLog(int level, String tag, String msg);

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

2 个答案:

答案 0 :(得分:2)

我同意你的看法,应该将日志记录委托给客户,而你自己开发的方法确实合情合理。

IMO,SLF4J门面将是您的理想选择。您的库将包含slf4j-api jar并包含SLF4J日志记录语句。如果客户希望记录,他们只需将日志记录后端(和可选的配置文件)放入其应用程序的类路径中以捕获/查看日志语句。

这种方法的优点是它可以为客户提供最大程度的控制,并且无需编码即可获得记录;并且它允许客户在许多可用的后端中进行选择。

我会使用logback作为J2SE应用的后端,使用logback-android作为Android。

答案 1 :(得分:1)

你可以试试microlog

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

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