TOP生产环境最近频频发生日志丢失事件,上了三拨人去解决,过了一段时间又出现了,太诡异了!具体现象如下:
1. 有一半的机器日志正常生成,而另一半的机器几乎没有生成日志。
2. 在日志丢失的机器上,所有普通logger配置的日志文件都没有生成,而root logger配置的日志文件却生成了,并且root logger只记录了搜索引擎的日志,其它日志信息一个都没有。
同样的机器,同样的代码,同样的环境,为什么会出现这种问题呢?
要想弄清楚原因,我们还得先来了解JAVA开源世界里的各种日志组件。
一、日志介绍
1. commons-logging : Apache最早提供的日志门面接口,主要是为了避免程序的代码和具体的实现相耦合。类似于JDBC的API接口,具体的JDBC Driver是由各个数据库提供商来实现的。通过统一接口解耦,不过其内部也实现了一些简单的日志方案。
2. log4j : 应用最广泛的一种日志解决方案,主要由Appender, Logger, Pattern, Category等组成,通过log4j.xml或log4j.properties配置文件来实现日志系统的管理和多样化配置。可单独做为日志方案来使 用,也可以配合commons-logging接口来使用,以达到解耦。
3. slf4j : Simple Logger Facade for JAVA,是继commons-logging后的又一日志门面接口。与commons-logging的配置加载实现不同,slf4j是通过类加载来感 知实现的。slf4j还有一个比较好的特性是&#x