Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
Java 最新的春兔唐';不支持编码器标签?_Java_Spring_Logback_Spring Amqp_Spring Rabbit - Fatal编程技术网

Java 最新的春兔唐';不支持编码器标签?

Java 最新的春兔唐';不支持编码器标签?,java,spring,logback,spring-amqp,spring-rabbit,Java,Spring,Logback,Spring Amqp,Spring Rabbit,我有一个问题,我将把logback日志发送给rabbit,我使用SpringRabbit,因为我需要用json格式发送数据,所以我使用LoggingEventCompositeJsonEncoder,下面是我的配置 <appender name="AMQP" class="org.springframework.amqp.rabbit.logback.AmqpAppender"> <!--<layout>--> <!--<patte

我有一个问题,我将把logback日志发送给rabbit,我使用SpringRabbit,因为我需要用json格式发送数据,所以我使用LoggingEventCompositeJsonEncoder,下面是我的配置

<appender name="AMQP" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
    <!--<layout>-->
    <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
    <!--</layout>-->
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <pattern>
            <pattern>
                { "level": "%level" }
            </pattern>
        </pattern>
    </encoder>
    <host>127.0.0.1</host>
    <port>5672</port>
    <username>guest</username>
    <password>guest</password>
    <routingKeyPattern>testroute</routingKeyPattern>
    <exchangeName>logs</exchangeName>

    <declareExchange>true</declareExchange>
    <generateId>true</generateId>
    <charset>UTF-8</charset>
    <durable>true</durable>
    <deliveryMode>PERSISTENT</deliveryMode>

</appender>

没错,
org.springframework.amqp.rabbit.logback.amqappender
是一个
AppenderBase
扩展,而不是支持
encoder
选项的
OutputStreamAppender

不过,我很确定我们可以添加对它的支持,而不是原始的
msgBody.getBytes()
调用this.encoder.encode(event)


关于这个问题的JIRA:.

这是正确的
org.springframework.amqp.rabbit.logback.amqappender
是一个
AppenderBase
扩展,而不是一个支持
encoder
选项的
OutputStreamAppender

不过,我很确定我们可以添加对它的支持,而不是原始的
msgBody.getBytes()
调用this.encoder.encode(event)


关于此事的JIRA:。

你需要显示你的配置。@GaryRussell我已经更新了配置文件,你能帮我吗?你需要显示你的配置。@GaryRussell我已经更新了配置文件,你能帮我吗?
 java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.joran.spi.Interpreter@16:88 - no applicable action for [encoder], current ElementPath  is [[configuration][appender][encoder]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@18:22 - no applicable action for [pattern], current ElementPath  is [[configuration][appender][encoder][pattern]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:26 - no applicable action for [pattern], current ElementPath  is [[configuration][appender][encoder][pattern][pattern]]
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:162)
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:81)
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:59)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:115)
    at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:303)
    at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:276)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:212)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:325)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)