【发布时间】:2021-06-07 12:23:48
【问题描述】:
我想通过 Http 将所有日志发送到另一个服务。我不想为此编写自定义网络客户端。是否有任何将日志发布到 Web 服务的日志库?在.net 方面,我可以使用 Serilog sink seq 来完成。 Spring有没有像Serilog这样的库?
【问题讨论】:
我想通过 Http 将所有日志发送到另一个服务。我不想为此编写自定义网络客户端。是否有任何将日志发布到 Web 服务的日志库?在.net 方面,我可以使用 Serilog sink seq 来完成。 Spring有没有像Serilog这样的库?
【问题讨论】:
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>
【讨论】: