問題描述:部分日志無法輸出到日志文件中。
項目中的代碼:
@Resource private ConfigInfo configInfo; private static final Logger logger = Logger.getLogger(UdmpUtil.class); @PostConstruct public void initialize() { try {
logger.info("log write...."); UdmpConfig.init(configInfo.getUdmp_path()); } catch (IOException e) { logger.info("init failed @UdmpUtil_Exception", e); } }
以上代碼段是可以輸出到日志文件中的。
分析:
帶有 @PostConstruct 標簽的代碼塊中的logger.info 方法是可以輸出日志 並寫入到日志文件中。但是其他業務層的logger.info方法卻不能。證明日志的xml文件應該是沒有問題的
解決:
通過源碼分析后發現加載的日志配置文件不是項目中的日志配置文件,項目中的一個jar在啟動的時候自己加載了其默認的log.xml文件,導致項目中的log.xml文件無法加載。
在引入的jar文件中配置了其log4j.xml的位置指向該項目中的日志文件。之后日志可以正常輸出
總結:
一個項目一定要配置好日志文件的位置,保證其唯一性不被其他框架或工具類默認的日志文件覆蓋。