在 Java 中如何实现像 tomcat 中的那样,多个 web 项目都可以有自己的日志输出。我模拟了一下,大致的过程是:主 main 函数中配置一个日志实例(log4j ),然后启动多个线程,每个线程中重新生成一个 ClassLoader ,然后扫描一个目录下的所有 jar 包和配置文件,然后反射执行其中的某个方法(这个方法会打印日志 logger.info("blabla..."))。
但是实验的结果总是,所有的日志都写到了 main 函数中配置的日志实例。我刚开始以为是线程的 contextClassLoader 没有设置,后来在线程中 Thread.currentThread().setContextClassLoader(cl);发现还是不行,被这个问题卡住好久了,网上资料也是各种看,一直没有实现。蓝瘦,香菇。。。
如果您了解的话,一定给我留言,提一下建议和思路也是好的,感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.