我的问题似乎很容易回答,但有几个很好的解决方案。我喜欢选择“最好的”。
可用的框架(请随时提出更多建议):
优点缺点:
雄激素:
- 优点:类似于Android日志框架,所以对现有代码只有很小的改动;能够在错误报告中发送更详细的崩溃报告(异常日志);漂亮的原木
- 缺点:没有标准的 java“getLogger”方法;通过将属性文件上传到 sdcard 可实现生产配置;我需要手动调用初始化日志;需要创建 LOG_TAG 类常量,或者通过 Aspect 破解它来创建日志标签常量以实现标准行为:标签是类名;当日志记录是一项业务需求时,我们需要对其进行测试。在 Android 上测试静态调用几乎是不可能的;记录器不能被框架注入
Log4J-安卓:
- Pro:登录Java的标准方式;与 SLF4J 兼容;能够解析属性文件;
- 缺点:没有内置崩溃报告系统;在我看来:它不常用,所以使用它可能很危险;
SLF4J-安卓:
- Pro:好像是由更多人开发的,比如Log4J-Android;
logger.debug("Some log message. Details: {}", someObject.toString());
如果关闭记录器,这是一种跳过字符串连接的好方法;委托给android.util.Log
. - 缺点:由于 Android 平台上日志标签的长度限制(例如,
com.example.myapp.MyClass
标签翻译c*.e*.m*.MyClass
为) ; 没有内置的崩溃报告系统。com.example.app.MyClass
com.example.anotherapp.MyClass
c*.e*.a*.MyClass
除此之外,我喜欢 Androlog 的行为,但我是一名 Java 开发人员,熟悉 log4j/slf4j。我们肯定需要崩溃报告系统,但是有几个崩溃报告框架(除了android默认的崩溃报告)。
我可以组合其中的一些,例如使用Log4J android,但是创建一个appender 来使用androlog 框架,但迟早会变得一团糟,应该避免。
感谢您的建议,我希望结果将有助于将来决定其他人。
编辑:如下所述,我可以将例如:log4j-android 与 slf4j 结合使用(如果我将使用 log4j,我更喜欢这样做,因为日志格式支持 ("{}",...) ),但确实如此不回答问题。我必须选择一个框架,然后我可以用 SLF4J 外观装饰它。