背景
最近在读 博多-舍费尔 著的《财务自由之路Ⅱ》,财务自由的确是一个很具诱惑力的目标,对于我这个连水果自由都没达到的人来说(PS:公司楼底下有一个菜鲜果美超市,随便什么水果都是十几块一斤,普通的苹果最便宜的 10.98 一斤,不敢随便买)。都三十多了才开始考虑如何实现财务自由,觉悟的有点晚了。
这本书提醒我们如果想增加财富,必须找到可以出售的东西。我最近在做的尝试是众筹写作、知识变现,或许我可以出售混迹职场这么些年积攒的一些技能知识吧。
承接上篇文章
最近协助项目组部署 Tomcat 时遇到一种情况:同一 Tomcat 下多 war 包部署时,有一个简单的应用无法启动,所有日志渠道中都没有关于它异常信息,catalina 日志中只轻描淡写地说它部署失败了。在该应用的类路径下放置一个 logging.properties 文件后,看到了完整异常,最终改正配置、重启得以成功部署。
笔者因此对 Tomcat 日志框架产生了几个疑问:
- 为什么 catalina 日志文件中没有具体应用的异常信息?
- 如何让应用启动异常信息输出 应用类路径下的?
- logging.properties 和 Tomcat 的 conf 目录下的该文件的关系如何 Tomcat 是如何做到应用日志隔离的?
花了一点时间跟踪 Tomcat 源码,弄清楚了Tomcat 对 java.util.logging 的日志框架“偷梁换柱”的底层支撑:
1、java.util.logging 原始包中的 LogManager ;
2、Tomcat 的 JULI 是什么 Tomcat 的 ;
3、ClassloaderLogManager 是如何加载日志配置的 ;
4、ClassloaderLogManager 替换 LogManager 的巧妙过程 ;
5、官方日志配置的几点建议 ;
6、启示录:-D , Java 中让人叹为观止的一种发明 。
以上是我在 GitChat 上发起的新话题,众筹写作,如果读者朋友对此感兴趣,请访问
https://gitbook.cn/gitchat/activity/5cdc9882f3f5110cf3822c3f
扫码链接: