Logback appender将消息发布为HTTP消息

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

根据我的要求,我只想将HTTP消息发布到org.slf4j.LoggerFactory.getLogger()记录的另一端。

以下JSON字符串记录在INFO level

{
  "studentName": "My Name",
  "Deratment": "Computer Science",
  "address": {
     "Address Line1": "My Address Line1",
     "Address Line2": "My Address Line2",
     "Address Line3": "My Address Line3"
  }
}

注意事项

  1. Http消息应该以MIME类型application/json发布
  2. 应该只处理INFO级别的特定日志而不是全部。

Logback中是否有内置的appender来实现这一点?

如果没有,最好的方法是什么?

json log4j logback slf4j
1个回答
1
投票

logback与logstash:https://github.com/logstash/logstash-logback-encoder的效果非常好。

第一步是配置logback到logstash连接。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
      <destination>127.0.0.1:4560</destination>

      <!-- encoder is required -->
      <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
  </appender>

  <root level="DEBUG">
      <appender-ref ref="stash" />
  </root>
</configuration>

完成后,您需要创建从tcp输入到http输出插件的管道,如下所示

input {
    tcp {
            port => 4560
            codec => json_lines
        }
}

output {
    http {
        http_method => ...
        url => ...
    }
}

(见https://www.elastic.co/guide/en/logstash/current/plugins-outputs-http.html

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