Could not initialize Logback logging from classpath:logback-spring.xml 错误解决

这篇具有很好参考价值的文章主要介绍了Could not initialize Logback logging from classpath:logback-spring.xml 错误解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 问题发生

  springboot项目以前运行时没有问题,但是重装系统换了个IDEA运行项目忽然报错如下:

Logging system failed to initialize using configuration from 'classpath:logback-spring.xml'
java.lang.IllegalStateException: Could not initialize Logback logging from classpath:logback-spring.xml
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:168)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:315)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:281)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)
	at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)
	at org.springframework.boot.SpringApplicationRunListeners$$Lambda$36/1293680734.accept(Unknown Source)
	at java.util.ArrayList.forEach(ArrayList.java:1249)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)
	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1311)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
	at com.agri.WebStartApplication.main(WebStartApplication.java:20)
Caused by: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file
	at ch.qos.logback.core.joran.event.SaxEventRecorder.handleError(SaxEventRecorder.java:74)
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:62)
	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151)
	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110)
	at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.configureByResourceUrl(LogbackLoggingSystem.java:188)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:165)
	... 23 more
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:691)
	at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:557)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1743)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1256)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:778)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1038)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2988)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
	at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:59)
	... 28 more

2. 排查过程

  本来我只注意到Could not initialize Logback logging from classpath:logback-spring.xml这个提示,我以为是别人动到了代码,看了下提交记录也没有,经过网上排查,有说是logging.config=classpath:logback-spring.xml配置需要写,但是我这个是一直有的。

  经过仔细的排查上边的日志,后来发现报错下边还有一句I/O error occurred while parsing xml file1 字节的 UTF-8 序列的字节 1 无效。 并且对应的错误类都是XML开头,这问题看起来有点明显,应该是解析logback-spring.xml转换字符集编码问题。
  查看了下logback-spring.xml里,果然有中文注释:

<!-- ERROR -->  
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <!-- 文件路径 ,注意LOG_PATH是默认值,
        	它的配置对应application.properties里的logging.path值-->  
        <file>${LOG_PATH}/error/error.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <!-- 文件名称 -->  
            <fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}.log  
            </fileNamePattern>
            <!-- 文件最大保存历史数量 -->  
            <MaxHistory>30</MaxHistory>  
        // 以下忽略

   并且跑到编译后的文件target下看到如下情况:

 <!-- ERROR -->  
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <!-- �ļ�·�� ��ע��LOG_PATH��Ĭ��ֵ��
        	�������ö�Ӧapplication.properties���logging.pathֵ-->  
        <file>${LOG_PATH}/error/error.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <!-- �ļ����� -->  
            <fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}.log  
            </fileNamePattern>
            <!-- �ļ���󱣴���ʷ���� -->  
            <MaxHistory>30</MaxHistory>  
            // 以下忽略

   那问题应该就知道了,只是编译的过程中字符集编码有问题。

3. 问题解决

   首先看了下自己的maven编译的插件是哪个:
classpath:logback-spring.xml,Maven,spring,logback,xml
   从idea里看到,生效的编译插件是maven-compiler-plugin插件,然后我就到pom.xml里找到它,发现它确实没有设置字符集编码,添加了<encoding>UTF-8</encoding>设置。

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <!--缺少了下边这行,以前没有设置字符集编码-->
                   <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

   最后再重新编译,发现target下的xml文件正常了。

classpath:logback-spring.xml,Maven,spring,logback,xml

4. 扩展

   当然,因为日志文件在项目启动最早需要用到,所以报错Could not initialize Logback logging from classpath:logback-spring.xml 只是开始,假如你只是单纯的把logback-spring.xml文件里的中文删除掉,并不能完整解决此问题。
   因为我们项目可能还有些xml带中文注释,比如mapper.xml,这种情况下也可能报错什么X字节的 UTF-8 序列的字节 1 无效
  因此,项目中假如遇到I/O error occurred while parsing xml fileX字节的 UTF-8 序列的字节 1 无效的类似错误,基本都是编译插件未设置字符集编码,只要加上就可以。文章来源地址https://www.toymoban.com/news/detail-532948.html

到了这里,关于Could not initialize Logback logging from classpath:logback-spring.xml 错误解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • logback-spring.xml日志配置文件详解

    打印日志是一个系统的基本功能,系统出现异常可以通过查找日志弄清楚是什么原因,从而更加快速地定位问题,修复系统。 文件位置 具体配置

    2024年02月15日
    浏览(34)
  • logback-spring.xml配置文件标签(超详解)

    市面上的日志框架; JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j… 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-logging Log4j JUL(java.util.logging) Log4j2 Logback SpringBoot选用 SLF4j(日志抽象层)和logback(日志实现) 官方图:

    2023年04月09日
    浏览(148)
  • SpringBoot之logback-spring.xml详细配置

    《logback官网》 各种指导文件,有空自己去看,比如:我们需要调整的是布局,直接看Layouts。 pom.xml 需要注意的事项: SpringBoot默认的root级别是INFO,因此不需要DEBUG级别的日志,除非你想看SpringBoot的某些详细内容或者执行过程。 虽然可以通过配置文件配置生成日志输出到文

    2024年02月14日
    浏览(40)
  • Error:Vscode Web View Could not Initialize

    问题场景 :在vscode上安装ployglot Notebook插件,创建了了一些*.dib和*.ipynb文件,然后在vscode中再次点击打开的时候 报错 :Error loading webview: Error: Could not register service workers: TypeError: Failed to register a ServiceWorker for scope 解决方案: 方案1 :重启vscode 方案2 : (1)关闭vscode后,按

    2024年02月08日
    浏览(34)
  • logback-spring.xml 的配置及详解(直接复制粘贴可用)

    logback-spring.xml 中有三处需要根据实际业务进行修改, 直接查找“(根据业务修改)”即可进行定位 。 如果不想修改, 直接复制粘贴到自己系统运行也可以,不会报错 。 application.yml 配置 logback-spring.xml 配置

    2024年02月11日
    浏览(39)
  • Could not initialize class org.bytedeco.javacpp.avutil问题解决

    最近提供需要提供音视频服务。参考网上的开源程序,提供了一个JAVA版的RTSP转HTTP的服务,并使用ffmpeg作为播放工具。 该程序在自己的机器上没有问题,但生成jar包后放置到服务器上运行出错,出错的是“java.lang.NoClassDefFoundError:Could not initialize class org.bytedeco.ffmpeg.gl

    2024年02月13日
    浏览(34)
  • JAVA运行时类存在,但是报错:NoClassDefFoundError: Could not initialize class

    我们在部署代码时,明明类存在,但是发现报错:NoClassDefFoundError: Could not initialize class。 这类问题是由静态成员或静态初始化语句块引起。 我们先看下面个类: 执行结果: 分析其中的原因:我们通过debug模式调试,可以看到logger=null。 结论:成员变量的初始化顺序导致log

    2024年02月02日
    浏览(37)
  • Could not initialize class org.elasticsearch.common.xcontent.json.JsonXContent

    问题的原因是jar包版本冲突。这个是在jackson的 since 2.4版本的包里面才有。2.3之前的版本是没有得。 这个存在2.4及以上才出现的,所以,实际运行的项目中jackson的jar冲突了。 我这儿的问题是flume的lib下有jackson的2.3的版本,但是,我代码引用的版本是2.8的版本,启动之后,j

    2024年02月12日
    浏览(44)
  • Could not initialize class org.gradle.internal.classloader.FilteringClassLoader处理方案

    我出现问题的时候是因为在毕业设计,学习mysql使用了破解版的datagrip(jetbrains系列),目录类似于这样,路径存在中文,: 我在这个路径下执行了如下脚本,导致android studio出现问题: 处理方案: 首先先执行uninstall-all-users.vbs和uninstall-current-user.vbs这两个,然后把整个文件夹

    2024年02月12日
    浏览(33)
  • 解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache

    新电脑打开一个Android老项目,报以下错误 根据报错信息来看,包名大部分是是com.gradle,猜测是和gradle版本有关,所以我们升级gradle版本。 打开Android项目根目录的gradle/wrapper/gradle-wrapper.properties 将distributionUrl后面的值改为新的版本. 同时将对应的Android Gradle Plugin版本更新,不

    2024年02月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包