• 记一次Log4j2日志无法输出的 心酸史


    问题描述:部分日志无法输出到日志文件中。

      项目中的代码:

        @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的位置指向该项目中的日志文件。之后日志可以正常输出

    总结:

      一个项目一定要配置好日志文件的位置,保证其唯一性不被其他框架或工具类默认的日志文件覆盖。

    不积跬步无以至千里
  • 相关阅读:
    linux 终端光标消失问题
    linux系统中条件测试语句
    linux shell if语句
    linux shell for循环
    linux 系统中read命令
    linux中while循环语句
    linux shell脚本中流程控制语句 if 、for、while、case
    pc端WINCE的安装包
    WinCE程序的几种开发方法
    Wince 下开发技巧(一)查看内存
  • 原文地址:https://www.cnblogs.com/showme1942/p/7560197.html
Copyright © 2020-2023  润新知