在 Java 中如何实现像 tomcat 中的那样,多个 web 项目都可以有自己的日志输出。我模拟了一下,大致的过程是:主 main 函数中配置一个日志实例(log4j ),然后启动多个线程,每个线程中重新生成一个 ClassLoader ,然后扫描一个目录下的所有 jar 包和配置文件,然后反射执行其中的某个方法(这个方法会打印日志 logger.info("blabla..."))。
但是实验的结果总是,所有的日志都写到了 main 函数中配置的日志实例。我刚开始以为是线程的 contextClassLoader 没有设置,后来在线程中 Thread.currentThread().setContextClassLoader(cl);发现还是不行,被这个问题卡住好久了,网上资料也是各种看,一直没有实现。蓝瘦,香菇。。。
如果您了解的话,一定给我留言,提一下建议和思路也是好的,感谢!
