使用AMQP appender更正JSON日志格式

时间:2015-11-25 16:09:53

标签: json logging spring-amqp appender

我正在使用" org.springframework.amqp.rabbit.log4j.AmqpAppender"用于将日志写入Rabbitmq的类。我想要的只是我的应用程序日志应该以json格式排队,最终会出现弹性搜索。以JSON格式登录的格式/模式是正确的还是我可以使用的库?

1 个答案:

答案 0 :(得分:0)

这取决于用于解析日志消息的内容。 例如,您可以将logstash用于此目的。在日志存储的情况下,有一个库实现log4j布局,以格式化logstash的正确json事件消息:log4j-jsonevent-layout。您的appender配置如下所示:

<appender name="amqp" class="org.springframework.amqp.rabbit.log4j.AmqpAppender">
    <param name="host" value="localhost" />
    <param name="port" value="5672" />
    <param name="virtualHost" value="/" />
    <param name="username" value="guest" />
    <param name="password" value="guest" />
    <param name="exchangeName" value="logs" />
    <param name="exchangeType" value="topic" />
    <param name="routingKeyPattern" value="%c.%p" />
    <param name="applicationId" value="AppId" />
    <param name="declareExchange" value="true" />
    <param name="durable" value="true" />
    <param name="contentType" value="text/plain" />
    <param name="senderPoolSize" value="2" />
    <param name="maxSenderRetries" value="30" />
    <layout class="net.logstash.log4j.JSONEventLayoutV1" >
        <param name="UserFields" value="field1:test" />
    </layout>
</appender>

您可以随时编写自己的布局。

另外,一些appender替代品:rabbitmq-log4j-appender