加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用Log4j2登录关闭钩子?

发布时间:2020-12-14 05:02:40 所属栏目:Java 来源:网络整理
导读:Log4j2还使用关闭挂钩来结束其服务.但是,当然,我想记录我的应用程序的整个生命周期 – 包括关闭.使用Log4j这是没有问题的.现在似乎是不可能的我的应用程序仍然在处理日志记录.有没有人对我有希望? 最好的祝福 马丁 解决方法 从2.0-Beta9开始,现在可以在xml
Log4j2还使用关闭挂钩来结束其服务.但是,当然,我想记录我的应用程序的整个生命周期 – 包括关闭.使用Log4j这是没有问题的.现在似乎是不可能的我的应用程序仍然在处理日志记录.有没有人对我有希望?

最好的祝福
马丁

解决方法

从2.0-Beta9开始,现在可以在xml中配置
<configuration ... shutdownHook="disable">

考虑到它现在已经被禁用了,我想我需要手动关闭日志系统在我的关机挂钩结束.然而,我找不到一个彻底的外部界面,只有在内部的api

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.LoggerContext;
...

public static void main(String[] args) {
    final AnnotationConfigApplicationContext springContext = new AnnotationConfigApplicationContext(AppConfig.class)

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            //shutdown application
            LOG.info("Shutting down spring context");
            springContext.close();

            //shutdown log4j2
            if( LogManager.getContext() instanceof LoggerContext ) {
                logger.info("Shutting down log4j2");
                Configurator.shutdown((LoggerContext)LogManager.getContext());
            } else
                logger.warn("Unable to shutdown log4j2");
        }
    });

    //more application initialization
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读