为 Java 开发者打造酷炫实用日志框架,移植 orhanobut-logger

做过Android开发的应该普遍都知道orhanobut/logger这个日志框架,不知道也没有关系,去看看就清楚了。这个日志框架很强大,但只能应用于Android开发,可惜我现在不做Android开发了,所以就尝试对源码改造一下,改造后的项目我已发布到Github上,各位看官如果感兴趣可以去Star下,用法在README中已经写明了,下面说明一下移植的过程。

移植原因

  • 普通的日志输出:

吐槽:日志输出太多看的我眼睛都花,而且还不容易定位日志输出的位置。

  • orhanobut/logger的效果:

有木有发现瞬间清晰,高大上许多,这么好的东西只能在Android上面用实在太可惜了。

  • 移植后的效果

Android Studio可以直接对Logcat输出的日志进行配色,我这里的IDE使用的InteliJ IDEA,配合了Grep Console才达到了上述效果,不知道在Eclipse上是啥样子的,没有测试。

将项目改为Maven工程

现在Android一般都是用Gradle来进行构建项目,而Java Web普遍项目使用的是Maven来构建项目。这里将Gradle改为Maven的主要原因是为了将项目发布到Maven中央仓库,如果使用Gradle发布,好像得发布到jcenter中,与Maven的中央仓库不一样,使用者如果要添加依赖还得在Maven中配置jcenter的地址,这样的话比较麻烦。

将Logcat改为Log4j

Logcat是Android自带的日志框架,普通Java项目是没法使用的,所以将底层的日志打印框架改为了Log4j。其实orhanobut/logger的主要作用是美化输出的日志,更加方便开发者阅读,底层的日志框架我们可以任意更换。因为使用了Log4j,所以肯定要配置log4j.properties,log4j.properties也要按照一定格式配置,比较重要的一点就是每行日志的末尾都必须换行才能达到比较满意的效果,否则输出的日志格式会错乱,最后的 '%n' 就是换行的意思

log4j.rootLogger=DEBUG,Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%d{yyyy-MM-dd HH\:mm\:ss}][%p][LOGGER_SC]: %m%n

去掉不适应的日志打印功能

因为Log4j毕竟与Logcat不是同一个东西,原先的orhanobut/logger可以打印json,xml文本,但是我测试的时候发现logger-sc对这一类的文本打印支持的不好,所以就去掉了。可以欣赏下原框架在Android下json文本的输出:

发表评论

电子邮件地址不会被公开。 必填项已用*标注