首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用哪个Android日志框架?

使用哪个Android日志框架?
EN

Stack Overflow用户
提问于 2012-05-09 10:22:18
回答 3查看 36K关注 0票数 55

我的问题似乎很容易回答,但有几个好的解决办法。我喜欢选择“最好”的那个。

现有框架(请随时提出更多建议):

  • 仙女座
  • SLF4J安卓
  • Log4J - Android

专业人士/委员会:

仙女座:

  • Pro:类似于Android日志框架,因此现有代码中只有很小的变化;能够在错误报告中发送更详细的崩溃报告(异常周围的日志);不错的日志
  • Con:没有标准的java "getLogger“方法;可以通过将属性文件上传到sdcard来实现生产配置;我需要手动调用init日志记录;需要像常量一样创建LOG_TAG,或者根据方面创建日志标记常量以实现标准行为:标记是类名;当日志记录是业务要求时,我们需要测试它。在Android上测试静态调用几乎是不可能的;Logger不能被框架注入

Log4J-Android:

  • Pro:标准的登录方式;兼容SLF4J;能够解析属性文件;
  • 康:没有内置的坠机报告系统;在我看来:它不常用,所以使用它可能会很危险;

SLF4J-Android:

  • 支持:似乎是由更多的人开发的,比如Log4J-Android;如果记录器关闭,logger.debug("Some log message. Details: {}", someObject.toString());是跳过字符串连接的好方法;委托给android.util.Log的轻量级记录器绑定。
  • Con:由于<=平台上日志标记的长度限制(例如,com.example.myapp.MyClass标记转换为c*.e*.m*.MyClass),自动生成的日志标记长度为23个字符,这可能导致不同类的日志标记相同(例如,com.example.app.MyClasscom.example.anotherapp.MyClass都转换为c*.e*.a*.MyClass);没有内置在崩溃报告系统中。

除此之外,我喜欢Androlog行为,但我是一个Java,熟悉log4j/slf4j。我们肯定需要崩溃报告系统,但是有几个崩溃报告框架(除了android默认的崩溃报告之外)。

我可以结合其中的一些,例如使用Log4J安卓,但创建一个附录来使用雄Log4J框架,但迟早会变得一团糟,这是应该避免的。

谢谢你的建议,我希望这一结果将有助于其他人在未来的决定。

编辑:如前所述,我可以将ex: log4j-android与slf4j结合(如果我使用log4j,我更愿意这样做,因为日志格式支持("{}",.) ),但它没有回答这个问题。我必须选择一个框架,然后我可以用SLF4J外观来装饰它。

EN

回答 3

Stack Overflow用户

发布于 2013-03-19 04:13:23

更好的方法。我认为,是使用SLF4J API +它的一些实现。

对于Android应用程序,您可以使用以下方法:

  1. Android记录器是一个轻量级但易于配置的SLF4J实现(< 50 Kb)。
  2. LOGBack是最强大和最优化的实现,但它的大小约为1MB。
  3. 根据你的品味:slf4jandroidslf4j-android
票数 13
EN

Stack Overflow用户

发布于 2012-05-09 10:46:56

请检查的第一个答案

上面写着:

SLF4J基本上是一个抽象层。它不是日志记录实现。这意味着,如果您正在编写一个库,并且使用了SLF4J,您可以将该库交给其他人使用,并且他们可以选择与SLF4J一起使用哪个日志实现,例如log4j还是Java。它有助于防止项目仅仅因为使用依赖于它们的库而依赖于大量日志API。 因此,概括地说: SLF4J并没有取代log4j,它们一起工作。它从库/应用程序中删除了对log4j的依赖。

票数 6
EN

Stack Overflow用户

发布于 2014-07-29 18:28:13

我尝试过原始slf4j.org-android,但不幸的是,这个jar无法获得要记录的调试/详细消息,因为它内部使用LOG.isDebugEnabled()进行调试输出,似乎总是错误的。

目前,我使用替代的lp0-slf4j-android实现,它使用带有日志设置的属性文件,如果启用,还可以在其中获得调试/详细消息。

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

https://stackoverflow.com/questions/10514175

复制
相关文章

相似问题

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