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