启动springboot时出现logback错误

问题描述 投票:0回答:1

我们已将 Spring Boot 和 Spring Cloud 升级到最新版本,现在在启动有关 logback 配置的服务之一时出现错误

启动应用程序时出现此错误。 错误消息也指的是什么属性?

现在开始申请... 日志系统无法使用“null”的配置进行初始化 java.lang.IllegalStateException:检测到 Logback 配置错误: ch.qos.logback.core.model.processor.PropertyModelHandler 中出现错误 - 在元素中,必须单独设置“file”属性,或单独设置“resource”元素,或同时设置“name”和“value”属性。 ch.qos.logback.core.model.processor.PropertyModelHandler 中出现错误 - 在元素中,必须单独设置“file”属性,或单独设置“resource”元素,或同时设置“name”和“value”属性。 在org.springframework.boot.logging.logback.LogbackLoggingSystem.reportConfigurationErrorsIfNecessary(LogbackLoggingSystem.java:260) 在org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:247) 在 org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80) 在 org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60) 在 org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:187) 在 org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:332) 在 org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:298) 在org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:246) 在 org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:223) 在org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) 在org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) 在org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) 在org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) 在 org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) 在 org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:81) 在 org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:64) 在 java.base/java.lang.Iterable.forEach(来源未知)

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_DIR" value="./build/run/logs" />
    <property name="KIBANA_LOGGING_PROFILE_NAME" value="kibana" />
    <springProperty scope="context" name="LOG_LEVEL"
        source="logback.appLogLevel" defaultValue="trace" />
    <springProperty scope="context"
        name="LOG_LEVEL_DOMAIN" source="logback.appLogLevel.domain"
        defaultValue="debug" />
    <springProperty scope="context" name="LOG_LEVEL_JWT"
        source="logback.appLogLevel.jwt" defaultValue="debug" />
    <springProperty scope="context"
        name="CLIENT_LOG_LEVEL" source="logback.clientLogLevel"
        defaultValue="trace" />
    <springProperty scope="context"
        name="ELASTIC_SEARCH_SERVER_URL"
        source="logback.elasticsearch.serverUrl"
        defaultValue="http://localhost:9200" />
    <appender name="Console"
        class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%black(%d{ISO8601}) %highlight(%-5level)
                [%blue(%t)]
                %yellow(%C{1}): %msg%n%throwable</Pattern>
        </layout>
    </appender>

    <appender name="RollingFile"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/spring-boot-logger.log</file>
        <encoder
            class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %p %C{1} [%t] %m%n</Pattern>
        </encoder>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <appender name="ClientRollingFile"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/client-spring-boot-logger.log</file>
        <encoder
            class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %p %C{1} [%t] %m%n</Pattern>
        </encoder>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/archived/client-spring-boot-logger-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <springProfile name="${KIBANA_LOGGING_PROFILE_NAME}">
        <appender name="ElasticSearch"
            class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
            <url>${ELASTIC_SEARCH_SERVER_URL}/_bulk</url>
            <index>logs-%date{yyyy-MM-dd}</index>
            <type>tester</type>
            <loggerName>elastic-search-logger</loggerName>
            <errorLoggerName>elastic-search-error-logger
            </errorLoggerName>
            <connectTimeout>30000</connectTimeout>
            <errorsToStderr>false</errorsToStderr>
            <includeCallerData>false</includeCallerData>
            <logsToStderr>false</logsToStderr>
            <maxQueueSize>104857600</maxQueueSize>
            <maxRetries>3</maxRetries>
            <readTimeout>30000</readTimeout>
            <sleepTime>250</sleepTime>
            <rawJsonMessage>false</rawJsonMessage>
            <includeMdc>true</includeMdc>
            <maxMessageSize>100</maxMessageSize>
            <authentication
                class="com.internetitem.logback.elasticsearch.config.BasicAuthentication" />
            <properties>
                <property>
                    <name>host</name>
                    <value>${HOSTNAME}</value>
                    <!-- <allowEmpty>false</allowEmpty> -->
                </property>
                <property>
                    <name>severity</name>
                    <value>%level</value>
                </property>
                <property>
                    <name>thread</name>
                    <value>%thread</value>
                </property>
                <property>
                    <name>stacktrace</name>
                    <value>%ex</value>
                </property>
                <property>
                    <name>logger</name>
                    <value>%logger</value>
                </property>
            </properties>
            <headers>
                <header>
                    <name>Content-Type</name>
                    <value>application/json</value>
                </header>
            </headers>
            <filter
                class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>DENY</onMatch>
            </filter>
            <filter
                class="ch.qos.logback.classic.filter.LevelFilter">
                <level>TRACE</level>
                <onMatch>DENY</onMatch>
            </filter>
        </appender>

        <logger name="elastic-search-error-logger" level="INFO"
            additivity="false">
            <appender-ref ref="RollingFile" />
            <appender-ref ref="Console" />
        </logger>

        <logger name="elastic-search-logger" level="INFO"
            additivity="false">
            <appender name="ES_FILE"
                class="ch.qos.logback.core.rolling.RollingFileAppender">
                <encoder>
                    <pattern>%msg</pattern>
                </encoder>
            </appender>
        </logger>
        <logger name="com.acme.application" level="${LOG_LEVEL}">
            <appender-ref ref="ElasticSearch" />
        </logger>
    </springProfile>

    <logger name="com.acme.applicationclient"
        level="${CLIENT_LOG_LEVEL}" additivity="false">
        <appender-ref ref="ClientRollingFile" />
        <appender-ref ref="Console" />
        <springProfile
            name="${KIBANA_LOGGING_PROFILE_NAME}">
            <appender-ref ref="ElasticSearch" />
        </springProfile>
    </logger>

    <logger name="com.acme.application.authentication.jwt"
        level="${LOG_LEVEL_JWT}" additivity="false">
        <appender-ref ref="ClientRollingFile" />
        <appender-ref ref="Console" />
        <springProfile
            name="${KIBANA_LOGGING_PROFILE_NAME}">
            <appender-ref ref="ElasticSearch" />
        </springProfile>
    </logger>

    <logger
        name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"
        level="TRACE" additivity="false">

        <appender-ref ref="Console" />
        <appender-ref ref="ClientRollingFile" />
    </logger>

    <logger name="com.acme.application.domain"
        level="${LOG_LEVEL_DOMAIN}" additivity="false">
        <appender-ref ref="Console" />
    </logger>

    <root level="info">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </root>

</configuration>


java spring-boot spring-cloud logback
1个回答
0
投票

似乎不再维护弹性搜索适配器,并且保留使用 < property > 的弹性属性。 使用 fork 修复https://github.com/agido-malter/logback-elasticsearch-appender

© www.soinside.com 2019 - 2024. All rights reserved.