如何将自定义字段从 Logback 发送到 Azure / AppInsights

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

我使用 Logback 和 StructuredArguments 在记录的条目中包含自定义字段。

像这样:

log.info("message", StructuredArguments.entries(Map.of("testKey", "testValue")));

如何将这些字段发送到 Azure Appinsights?

我在

traces
表中看到这些消息,但不包括来自地图的参数。

java azure logging logback
1个回答
0
投票

添加依赖项

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version>2.6.3</version>
</dependency>
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-logging-logback</artifactId>
    <version>2.6.3</version>
</dependency>
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>6.6</version>
</dependency>

然后通过将以下配置添加到 logback.xml 文件来配置 Logback 以使用 Logstash Appender

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>localhost:5044</destination>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"ai.cloud.roleInstance": "your-instance-name"}</customFields>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="logstash"/>
</root>

最后在 Logback 日志中使用 StructuredArguments

log.info("message", StructuredArguments.entries(Map.of("testKey", "testValue")));

现在重新启动您的应用程序和 Logstash

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