Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot %spring引导日志记录中的解析器_错误[wex]_Spring Boot_Logback - Fatal编程技术网

Spring boot %spring引导日志记录中的解析器_错误[wex]

Spring boot %spring引导日志记录中的解析器_错误[wex],spring-boot,logback,Spring Boot,Logback,我的日志文件中偶尔会出现以下错误字符串。我正在使用SpringBoot运行SpringCloud应用程序。我使用一个包含另一个配置文件的回写配置文件。 spring启动版本是v1.2.3(SpringCloud 1.0.1) %语法分析器错误[wex]2015-06-01 12:30:22.180调试6833---[http-nio-9000-exec-1]。。。日志消息的其余部分 我看到了这个条目(),但ti似乎不适用 logback.xml文件是: <?xml version="1.0

我的日志文件中偶尔会出现以下错误字符串。我正在使用SpringBoot运行SpringCloud应用程序。我使用一个包含另一个配置文件的回写配置文件。 spring启动版本是v1.2.3(SpringCloud 1.0.1)

%语法分析器错误[wex]2015-06-01 12:30:22.180调试6833---[http-nio-9000-exec-1]。。。日志消息的其余部分

我看到了这个条目(),但ti似乎不适用

logback.xml文件是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="LOG_FILE" value="logs/myservice.log"/>

    <!-- the rollover settings with mean a max size per log of 100Mb and 7 days -->
    <property name="MAX_HISTORY" value="7"/>
    <property name="MAX_FILE_SIZE" value="100MB"/>


    <!-- the specific loggers -->
    <logger name="com.companyx" level="DEBUG"/>
    <logger name="org.springframework" level="ERROR"/>
    <logger name="org.springframework.security.oauth2" level="INFO"/>
    <logger name="org.springframework.integration" level="OFF"/>
    <logger name="org.springframework.oxm" level="OFF"/>
    <logger name="org.springframework.http" level="ERROR"/>

    <logger name="com.netflix.discovery" level="OFF"/>
    <logger name="com.netflix.eureka.util.AwsAsgUtil" level="OFF"/>

    <logger name="com.mangofactory.swagger.scanners" level="OFF"/>

    <include resource="com/companyx/services/common/logging/baselog.xml"/>

</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<included>

    <!-- turn on JMX configuration -->
    <jmxConfigurator />

    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>

    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS, Zulu}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
    <property name="FILE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS, Zulu} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>

    <appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
        <destinationLogger>org.springframework.boot</destinationLogger>
    </appender>

    <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
    <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
    <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
    <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
    <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
    <logger name="org.crsh.plugin" level="WARN"/>
    <logger name="org.crsh.ssh" level="WARN"/>
    <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
    <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
    <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
    <logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
        <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
    </logger>
    <logger name="org.thymeleaf" additivity="false">
        <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
    </logger>

    <!-- declare the different appenders -->

    <!-- declare the appender that writes to the console -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- declare the appender that writes to the log file -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>${MAX_HISTORY}</maxHistory>
        </rollingPolicy>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>${MAX_HISTORY}</maxHistory>
        </rollingPolicy>

    </appender>


    <!-- default logging levels, unless we overwrite then use INFO-->
    <root>
        <level value="INFO"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </root>

    <!-- application overrides will be added in files that include this one -->

</included>

包含的baselog.xml文件是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="LOG_FILE" value="logs/myservice.log"/>

    <!-- the rollover settings with mean a max size per log of 100Mb and 7 days -->
    <property name="MAX_HISTORY" value="7"/>
    <property name="MAX_FILE_SIZE" value="100MB"/>


    <!-- the specific loggers -->
    <logger name="com.companyx" level="DEBUG"/>
    <logger name="org.springframework" level="ERROR"/>
    <logger name="org.springframework.security.oauth2" level="INFO"/>
    <logger name="org.springframework.integration" level="OFF"/>
    <logger name="org.springframework.oxm" level="OFF"/>
    <logger name="org.springframework.http" level="ERROR"/>

    <logger name="com.netflix.discovery" level="OFF"/>
    <logger name="com.netflix.eureka.util.AwsAsgUtil" level="OFF"/>

    <logger name="com.mangofactory.swagger.scanners" level="OFF"/>

    <include resource="com/companyx/services/common/logging/baselog.xml"/>

</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<included>

    <!-- turn on JMX configuration -->
    <jmxConfigurator />

    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>

    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS, Zulu}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wex"/>
    <property name="FILE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS, Zulu} %5p ${PID:- } --- [%t] %-40.40logger{39} : %m%n%wex"/>

    <appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
        <destinationLogger>org.springframework.boot</destinationLogger>
    </appender>

    <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
    <logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
    <logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
    <logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
    <logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
    <logger name="org.crsh.plugin" level="WARN"/>
    <logger name="org.crsh.ssh" level="WARN"/>
    <logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
    <logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
    <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
    <logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
        <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
    </logger>
    <logger name="org.thymeleaf" additivity="false">
        <appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
    </logger>

    <!-- declare the different appenders -->

    <!-- declare the appender that writes to the console -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- declare the appender that writes to the log file -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>${MAX_HISTORY}</maxHistory>
        </rollingPolicy>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>${MAX_HISTORY}</maxHistory>
        </rollingPolicy>

    </appender>


    <!-- default logging levels, unless we overwrite then use INFO-->
    <root>
        <level value="INFO"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE"/>
    </root>

    <!-- application overrides will be added in files that include this one -->

</included>

org.springframework.boot
${CONSOLE\u LOG\u PATTERN}
utf8
${FILE\u LOG\u PATTERN}
${LOG_文件}
${LOG\u FILE}.%d{yyyy-MM-dd}.LOG.gz
${MAX_HISTORY}
${LOG\u FILE}.%d{yyyy-MM-dd}.%i.LOG.gz
${MAX_FILE_SIZE}
${MAX_HISTORY}

在我们的案例中,问题在于我们使用的麋鹿系统。我们运行了Elasticsearch Logstash Kibana日志收集系统,收集日志的日志存储代理在日志记录传递时将%PARSER_ERROR%[wex]插入日志记录


在我们获得了可接受的解决方案后,问题就消失了。

在我的情况下,问题是由以下格式引起的,我从另一个项目复制了该格式(在那里它工作得非常好)

将格式更改为

%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%rEx}
我们不再得到这个错误


奇怪的是,这两个项目都使用logback-core-1.1.8和logback-classic-1.1.8,都是在slf4j上实现的。唯一的区别是,wEx格式用于Spring启动项目,而rEx格式用于较旧的Spring 3项目。

请在Logback.xml中包含Spring提供的default.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />