## 9.1.1 Java的日志系统
java领域存在多种日志框架,目前常用的日志框架包括Log4j,Log4j 2,Commons Logging,Slf4j,Logback,Jul。这些框架中可以分为两类,一类是日志框架,一类是日志实现。
日志框架,提供调用的接口
* Commons Logging:apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。
* SLF4j:类似于Apache Common-Logging,是对不同日志框架提供的一个门面封装,可以在部署的时候不修改任何配置即可接入一种日志实现方案。
日志实现:具体的实现
* Log4j:经典的一种日志解决方式。内部把日志系统抽象封装成Logger 、appender 、pattern 等实现。我们能够通过配置文件轻松的实现日志系统的管理和多样化配置。
* Logback:Log4j的替代产品。须要配合日志框架SLF4j使用
* JUL(java.util.logging):JDK提供的日志系统。较混乱,不经常使用
## 9.1.2 Netty的封装
由于Java提供的日志框架较多,为了便于使用,Netty封装了一套通用的日志系统。主要思路是实现了InternalLogger和InternalLoggerFactory,讲Logger和LogFactory抽象出来,netty默认的InternalLoggerFactory会自己查找当前