作为一个非计算机出身的老程序员,最近打算自己搭建一个开发脚手架。认真研究了一下几个常见的跟日志有关的项目之间的关系。小有心得,记录一下方便自己随时复习。其实如果正经学过计算机,对设计模式有一定的理解,可能就没有我现在这么困难了。
一、常见日志相关项目分析:
目前常见的跟日志有关的项目有这么几个:commons-logging,sl4j,log4j 1.x或log4j 2.x,logback等。
这些项目分为两类,一类是日志门面,就是一组api,没有实现,关心的是日志的接口的合理性、易用性等;另一类是具体的日志实现,负责真的记录日志,关心的是日志的效率啊什么的。
其中,commons-logging和sl4j归为第一类。如果想做一个正经的工程,不管是要做应用,还是要做通用的jar包,都应该选择一个日志门面。这样在后期开发中更换日志实现(第二类日志项目)或者集成到其他系统中的时候,才不会遇到问题。
剩下的归为另一类,是记录日志的实现。会具体的记录下日志文件。他们的区别就是api不同,使用方法不同,效率不同,等等各种不同。
二、常见日志记录方案:
门面+实现。如果选择的不是这个方案,是在是说明自己是菜鸟了(其实我一直是菜鸟~~,我一直是直接用log4j1。这个真心体现基础知识的重要性)。
目前脚手架里面选择的是sl4j+log4j2的方案。个人认为sl4j的api更好一些。纯粹的个人认为哈。
下面的就未完待续了~~~~
真不好意思挖了个大坑~~~~~~~~
三、日志分析查看方案: