log4j出现Caused by: java.net.UnknownHostException: www.w3.org

来源:互联网 发布:澳柯玛集团数据 编辑:程序博客网 时间:2024/05/16 11:49

前景:今天我打开电脑在未联网的情况下直接就运行了一个昨天看的spring boot 的项目,然后发现运行报如下错误(是日志出错了):

Failed to auto configure default logger contextReported exception: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 ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75)    at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)    at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84)    at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273)    at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:190)    at com.b505.SpringBootForWeChatApplication.main(SpringBootForWeChatApplication.java:29)Caused by: java.net.UnknownHostException: www.w3.org    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)    at java.net.PlainSocketImpl.connect(Unknown Source)    at java.net.SocksSocketImpl.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at java.net.Socket.connect(Unknown Source)    at sun.net.NetworkClient.doConnect(Unknown Source)    at sun.net.www.http.HttpClient.openServer(Unknown Source)    at sun.net.www.http.HttpClient.openServer(Unknown Source)    at sun.net.www.http.HttpClient.<init>(Unknown Source)    at sun.net.www.http.HttpClient.New(Unknown Source)    at sun.net.www.http.HttpClient.New(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)    at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:59)    ... 16 more

就是日志系统的I/O错误,配置日志的xml内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"><!-- 上面这句解决了xml验证 No grammar constraints (DTD or XML Schema) referenced in the document. --><!-- Logback configuration. See http://logback.qos.ch/manual/index.html --><configuration scan="true" scanPeriod="10 seconds">    <include resource="org/springframework/boot/logging/logback/base.xml" />    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">        <File>${LOG_PATH}/info.log</File>        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <fileNamePattern>${LOG_PATH}/info-%d{yyyyMMdd}.log.%i            </fileNamePattern>            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">                <maxFileSize>500MB</maxFileSize>            </timeBasedFileNamingAndTriggeringPolicy>            <maxHistory>2</maxHistory>        </rollingPolicy>        <layout class="ch.qos.logback.classic.PatternLayout">            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n            </Pattern>        </layout>    </appender>

这个问题就是因为在xml的引入了:

所以会在未联网的情况下初始化logback出错,联网以后就可以解决。还有就是上面这句解决了xml验证 No grammar constraints (DTD or XML Schema) referenced in the document. 的错误。记录下来。

阅读全文
0 0
原创粉丝点击