项目构建时抛出LoggerContextShutdownAware log 错误问题处理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: SpringBoot应用的日志显示它尝试初始化Skywalking日志目录为/app/logs/skywalking。随后,应用程序一个异常,具体是`java.lang.reflect.InvocationTargetException`。问题可能是由于日志库的冲突或缺失导致的。建议检查项目中是否存在与SpringBoot内置日志系统冲突的自定义日志配置,并确保所有必要的日志依赖,如log4j-core和log4j-api,都已正确且版本匹配地引入。通过解决这些冲突并重新构建,应该可以解决这个问题。

11:53:32.799 INFO main SnifferConfigInitializer : skywalking logging dir: /info/app/logs/skywalking

Exception in thread "main" java.lang.reflect.InvocationTargetException

       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

       at java.lang.reflect.Method.invoke(Method.java:498)

       at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)

       at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)

       at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

       at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

Caused by: java.lang.NoClassDefFoundError: org/apache/logging/log4j/spi/LoggerContextShutdownAware

       at java.lang.ClassLoader.defineClass1(Native Method)

       at java.lang.ClassLoader.defineClass(ClassLoader.java:756)

       at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

       at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)

       at java.net.URLClassLoader.access$100(URLClassLoader.java:74)

       at java.net.URLClassLoader$1.run(URLClassLoader.java:369)

       at java.net.URLClassLoader$1.run(URLClassLoader.java:363)

       at java.security.AccessController.doPrivileged(Native Method)

       at java.net.URLClassLoader.findClass(URLClassLoader.java:362)

       at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

       at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93)

       at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

       at org.apache.logging.log4j.core.impl.Log4jContextFactory.createContextSelector(Log4jContextFactory.java:108)

       at org.apache.logging.log4j.core.impl.Log4jContextFactory.<init>(Log4jContextFactory.java:61)

       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

       at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

       at java.lang.Class.newInstance(Class.java:442)

       at org.apache.logging.log4j.LogManager.<clinit>(LogManager.java:94)

       at org.apache.commons.logging.LogFactory$Log4jLog.<clinit>(LogFactory.java:199)

       at org.apache.commons.logging.LogFactory$Log4jDelegate.createLog(LogFactory.java:166)

       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:109)

       at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:99)

       at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:200)

       at com.haoqian.cqdm.CqdmApplication.main(CqdmApplication.java:38)

       ... 8 more



分析SpringBoot中的日志关系


image.png


总结:

1.项目中的-logger可能和spring-boot自带的冲突了

2.需要把项目中的日志jar包进行排包

image.png

3.如果使用org.apache.logging.log4j 包查看log4j-core jar包对应的api包是否存在

4.如果不存在添加api包:如下

<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-core</artifactId>
   <version>2.19.0</version>
</dependency>
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-api</artifactId>
   <version>2.19.0</version>
</dependency>

项目重新构建发布成功

image.png

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
电子书阅读分享《Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)》
258 1
|
1月前
|
存储 监控 Kubernetes
构建高效稳定的云原生日志监控系统
【5月更文挑战第26天】 随着微服务架构和容器化技术的普及,传统的日志监控方法面临重大挑战。本文将探讨如何构建一个既高效又稳定的云原生日志监控系统,该系统旨在提供实时的日志分析能力,同时保证系统的高可用性和可扩展性。我们将讨论利用现代技术栈如Fluentd、Elasticsearch和Kibana(EFK栈)来搭建日志收集、存储和可视化的解决方案,并深入探讨如何通过容器编排工具如Kubernetes来实现日志服务的自动伸缩和故障恢复。此外,我们还将介绍一些最佳实践,帮助运维团队在保持系统性能的同时,降低资源消耗和运营成本。
|
1月前
|
运维 Java Devops
云效产品使用报错问题之自定义环境构建没有日志,也没有报错,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
云效产品使用报错问题之自定义环境构建没有日志,也没有报错,如何解决
|
1月前
|
存储 API 持续交付
云效产品使用报错问题之使用自定义镜像构建,看不到构建日志要如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
存储 运维 监控
构建高效可靠的云原生日志监控体系
【4月更文挑战第29天】随着微服务和容器化技术的普及,传统的日志监控方案已难以满足现代云原生应用的需求。本文将探讨如何构建一个既高效又可靠的云原生日志监控体系,涵盖从日志生成、收集、存储到分析的全流程,并重点讨论了利用Fluentd、Elasticsearch、Kibana (EFK) 栈实现日志聚合、搜索和可视化的最佳实践。
|
1月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
296 0
|
1月前
|
存储 数据采集 运维
构建高效日志管理系统:阿里云产品实践与技术解析
日志管理对于系统运维和故障排查至关重要。本文将详细介绍如何利用阿里云相关产品搭建一个高效、可扩展的日志管理系统。我们将使用Log Service、Elasticsearch、DataHub等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
159 0
|
9月前
|
JSON 安全 API
通过 slack 快速构建实时日志
通过 slack 快速构建实时日志
195 0
|
应用服务中间件 nginx 索引
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践3:基于Loki的日志查询分析
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践3:基于Loki的日志查询分析
254 0
|
消息中间件 SQL 数据采集
EventBridge 生态实践:融合 SLS 构建一体化日志服务
本文将从 SLS 在 EventBridge上 的使用以及若干最佳实践场景等方面,为大家介绍如何基于 EventBridge 构建 SLS 相关应用。
265 0
EventBridge 生态实践:融合  SLS 构建一体化日志服务