jdk 日志浅析

        我们知道,从jdk1.4开始,java中引入了自己的日志系统,但是绝大多数人还是继续用log4j,我很想一探究竟,因此,我花了点时间看jdk logger的源码,发现jdk自带的日志系统结构相当的清晰,主要涉及到3个类,一个是LogManager,这个类专门负责管理注册的logger的,和我们的日志配置文件属性。另外一个重要的类就是Logger了,这个类就是我们的日志类,这个类,主要记录了这个日志的处理器信息,也就是与它关联的Handle,最后一个重要的类就是Handle了,这个类是个抽象类,一个它的实现,可以被注册到具体的Logger对象里面,负责处理这个Logger的日志输出。

         当然,jdk Logger中给了我们很多默认的实现,比如StreamHandler,这个处理类就对日志的输出有一定的规定,具体代码在publish方法里面,当然我们可以在它的基础上进行扩展,可以按照我们的自己的格式化输出,实现Formatter,当然,我们也可以不按照StreamHandler中的publish实现走,我们可以写自己的publish方法,直接继承Handle. 我觉得灵活性相当的大。当然,jdk logger已经为我们提供了4个Handle,可供选择,分别是:MemeryHandle,FileHandle,ConsoleHandle,InternalStreamHandle,SocketHandle.

         而log4j,它的优点到底在什么地方,为什么会又这么多的人用它?

你可能感兴趣的:(jdk,log4j,配置管理,项目管理)