第九章节介绍项目日志分离,在原著中介绍了两种解决方案,
我理解日志分离是指在以下几种情况时,如何保证每个项目的LoggerContext独立。
- 当处于不同JVM时,不同JVM的LoggerContext对象肯定是独立的
- 当处于同JVM,不同类加载器时,此时LoggerContext对象需要有自己独立的类加载器。
- 当处于同JVM,同类加载器时,如果保证LoggerContext对象独立,这也是本章的核心内容,引入ContextSelector接口。
在本章内容开始前,至少建立两个独立的Web项目,每个项目都有配日志框架。
1、不同类加载器
当多个项目部署在同一个Web容器时,例如项目A和项目B都部署在同一个tomcat下,此时在publish过程中,tomcat会为每个项目单独创建一个目录,相关的日志jar包都存放在WEB-INF/lib下,日志配置文件也存放在不同的resources文件夹下。
启动tomcat,使用Jconsole监控时,会发现每个项目的类加载器不同。所以LoggerContext对象也彼此独立。
2、同类加载器
待完善