从日志文件看系统的耦合性

在大型系统中,往往会将日志分类存储在不同文件中,如按日志级别(debug、info、warn、erro等)存储到不同的文件,按业务类型存储到不同的文件,而且系统涉及到多个团队、多个开发者时,一个工程引用了多个第三方包时,情况就更加复杂了。

怎么让日志更加清晰呢?

混乱起因 :多人共同维护一个log4j的配置文件,大家普遍的做法遇到需求就往log4j.properties中增加一些日志项,重构代码后即使日志的配置已经无效了,也常常忘记维护,为了避免造成不必要的麻烦,大家对删除日志的配置项会很谨慎,甚至明知道已经没有用了,也懒得去清理。

解决办法 :为了让大家维护log4j配置文件时更加大胆,将日志文件的配置划分到多个log4j.properties,每个包一个配置文件,如third.jar包的配置文件third.log4j.properties,在third.jar中显式加载配置文件。

不建议加载jar中log4j.properties,如果需要可以将jar中的配置解压出来放到指定路径下,可读性不强(查看线上log时需要先解包)。


耦合性是大型分布式系统的天敌,解耦的过程恰恰就是系统架构演进的过程,而解耦的出发点和落脚点都是:“职责链”,随着系统演进不断细分指责,逻辑层面的划分让架构更容易理解,物理层面的划分让服务整体性能更强。

猜你喜欢

转载自yexingren23.iteye.com/blog/1477560