【问题标题】:Sending logs to another service in Spring在 Spring 中将日志发送到另一个服务
【发布时间】:2021-06-07 12:23:48
【问题描述】:

我想通过 Http 将所有日志发送到另一个服务。我不想为此编写自定义网络客户端。是否有任何将日志发布到 Web 服务的日志库?在.net 方面,我可以使用 Serilog sink seq 来完成。 Spring有没有像Serilog这样的库?

【问题讨论】:

    标签: java spring logging


    【解决方案1】:

    Log4J 有多个 appender,其中一个是 HTTP Appender。

    https://logging.apache.org/log4j/2.x/manual/appenders.html#HttpAppender

    请参阅下面的要求和示例:

    HttpAppender

    HttpAppender 通过 HTTP 发送日志事件。必须提供布局 格式化 LogEvent。

    会根据布局设置 Content-Type 标头。额外的 可以使用嵌入的 Property 元素指定标题。

    等待服务器响应,如果没有 2xx 响应则抛出错误 收到了。

    这里是一个示例 HttpAppender 配置 sn-p:

    <?xml version="1.0" encoding="UTF-8"?>
    
      <Appenders>
        <Http name="Http" url="https://localhost:9200/test/log4j/">
          <Property name="X-Java-Runtime" value="$${java:runtime}" />
          <JsonLayout properties="true"/>
          <SSL>
            <KeyStore   location="log4j2-keystore.jks" passwordEnvironmentVariable="KEYSTORE_PASSWORD"/>
            <TrustStore location="truststore.jks"      passwordFile="${sys:user.home}/truststore.pwd"/>
          </SSL>
        </Http>
      </Appenders>
    
    </xml>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2019-11-29
      • 2013-04-09
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多