开发者社区 > 云原生 > 正文
1
0
分享

springboot集成log4j2 appender 日志发送失败

应用启动后,第一次可以正常发送日志,再次发送时报如下异常:

20210816 16:02:09.339 [main] INFO org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver 58 - Exposing 1 endpoint(s) beneath base path '' 2021-08-16 16:02:09,478 main WARN SerializedLayout is deprecated due to the inherent security weakness in Java Serialization, see https://www.owasp.org/index.php/Deserialization_of_untrusted_data Consider using another layout, e.g. JsonLayout 20210816 16:02:09.495 [NettyClientSelector_1] INFO RocketmqRemoting 95 - closeChannel: close the connection to remote address[10.158.158.19:10911] result: true 2021-08-16 16:02:09,496 NettyClientSelector_1 ERROR Could not send message in RocketmqLog4j2Appender [rocketmqAppender].Message is : 2021-08-16 16:02:09,495 [INFO] RocketmqRemoting closeChannel: close the connection to remote address[10.158.158.19:10911] result: true org.apache.rocketmq.client.exception.MQClientException: The producer service state not OK, SHUTDOWN_ALREADY See http://rocketmq.apache.org/docs/faq/ for further details. at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.makeSureStateOK(DefaultMQProducerImpl.java:442) at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:560) at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendOneway(DefaultMQProducerImpl.java:1014) at org.apache.rocketmq.client.producer.DefaultMQProducer.sendOneway(DefaultMQProducer.java:403) at org.apache.rocketmq.logappender.log4j2.RocketmqLog4j2Appender.append(RocketmqLog4j2Appender.java:106) at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156) at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129) at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120) at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)

原提问者GitHub用户JerryZ521

展开
收起
芬奇福贵 2023-05-26 10:50:38 117 0
举报
飞天免费试用计划
领取免费云资源,开启云上实践第一步
应用实时监控服务-用户体验监控
每月100OCU免费额度
不限时长
可观测监控 Prometheus 版
每月50GB免费额度
不限时长
性能测试 PTS
5000VUM额度
额度30个日内有效
1 条回答
写回答
取消 提交回答
  • 这个问题解决了。 原因描述:ProducerInstancer每次获取producer都是同一个实例,而我们的场景需要动态更新log4j2配置,重新初始化上下文时关闭了producer,现在改成每次获取新对象,stop方法改成每次调用关闭当前appender中的producer对象。

    原回答者GitHub用户JerryZ521

    2023-05-26 17:15:11 举报
    赞同 评论 打赏

    评论

    全部评论 (0)

    登录后可评论

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等