java.lang.NoSuchMethodError: 'java.lang.Object
ch.qos.logback.classic.LoggerContext.getConfigurationLock()'
剖析:
异常栈显示,日志初始化失败,具体报错为
java.lang.NoSuchMethodError:'java.lang.Object ch.qos.logback.classic.LoggerContext.getConfigurationLock()'
,
异常源于
org.springframework.boot.logging.logback.LogbackConfigurator.getConfigurationLock(LogbackConfigurator.java:53)
。从整个异常栈来看,是 Spring Boot 在尝试初始化 Logback 日志系统时出现了问题。
原因:
导致该异常的原因是项目中日志配置文件缺失。对于使用 Logback 日志框架的项目,通常需要logback.xml
文件进行配置;若使用 Log4j2,则需要log4j2.xml
;还有logging.properties
也可用于日志配置。在本项目中,正是缺少了相应的日志配置文件,从而引发了日志系统初始化失败的问题。
解决:
解决方法就是,补充相应的配置文件,例如,项目使用 Logback,就在src/main/resources
目录下创建logback.xml
文件,并根据项目需求配置好日志级别、输出格式、输出路径等相关参数。配置完成后,运行项目,日志系统便能正常初始化,java.lang.NoSuchMethodError
异常也随之消失。