我的问题似乎很容易回答,但有几个好的解决办法。我喜欢选择“最好”的那个。
现有框架(请随时提出更多建议):
专业人士/委员会:
仙女座:
Log4J-Android:
SLF4J-Android:
logger.debug("Some log message. Details: {}", someObject.toString());是跳过字符串连接的好方法;委托给android.util.Log的轻量级记录器绑定。com.example.myapp.MyClass标记转换为c*.e*.m*.MyClass),自动生成的日志标记长度为23个字符,这可能导致不同类的日志标记相同(例如,com.example.app.MyClass和com.example.anotherapp.MyClass都转换为c*.e*.a*.MyClass);没有内置在崩溃报告系统中。除此之外,我喜欢Androlog行为,但我是一个Java,熟悉log4j/slf4j。我们肯定需要崩溃报告系统,但是有几个崩溃报告框架(除了android默认的崩溃报告之外)。
我可以结合其中的一些,例如使用Log4J安卓,但创建一个附录来使用雄Log4J框架,但迟早会变得一团糟,这是应该避免的。
谢谢你的建议,我希望这一结果将有助于其他人在未来的决定。
编辑:如前所述,我可以将ex: log4j-android与slf4j结合(如果我使用log4j,我更愿意这样做,因为日志格式支持("{}",.) ),但它没有回答这个问题。我必须选择一个框架,然后我可以用SLF4J外观来装饰它。
发布于 2013-03-19 04:13:23
更好的方法。我认为,是使用SLF4J API +它的一些实现。
对于Android应用程序,您可以使用以下方法:
发布于 2012-05-09 10:46:56
请检查这的第一个答案
上面写着:
SLF4J基本上是一个抽象层。它不是日志记录实现。这意味着,如果您正在编写一个库,并且使用了SLF4J,您可以将该库交给其他人使用,并且他们可以选择与SLF4J一起使用哪个日志实现,例如log4j还是Java。它有助于防止项目仅仅因为使用依赖于它们的库而依赖于大量日志API。 因此,概括地说: SLF4J并没有取代log4j,它们一起工作。它从库/应用程序中删除了对log4j的依赖。
发布于 2014-07-29 18:28:13
我尝试过原始slf4j.org-android,但不幸的是,这个jar无法获得要记录的调试/详细消息,因为它内部使用LOG.isDebugEnabled()进行调试输出,似乎总是错误的。
目前,我使用替代的lp0-slf4j-android实现,它使用带有日志设置的属性文件,如果启用,还可以在其中获得调试/详细消息。
https://stackoverflow.com/questions/10514175
复制相似问题