1

我们正在使用 IdentityServer4 并将日志发送到 SumoLogic。我们通过 SerilLog 将日志从 IdentityServer 推送到 sumoLogic,SumoLogic 将每个日志条目视为单独的消息。所以发生的事情基本上是一个错误被报告为两个或多个不同的消息:

日志条目 1:2017-09-11 16:06:28.234 +10:00 [信息] 请求在 2265.5543ms 400 application/json 完成

日志条目 2:2017-09-11 16:06:28.230 +10:00 [Debug] Connection id ""0HL7ORC9RFJ8C"" 完成保持活动响应。

日志条目 3:2017-09-11 16:06:28.209 +10:00 [错误] "{ \"ClientId\": \"roclient.reference\", \"GrantType\": \"password\", \" Raw\": { \"grant_type\": \"password\", \"username\": \"BobSmith@email.com\", \"password\": \" REDACTED \", \"scope\" : \"api1 api2.read_only\" } }"

日志条目 4:2017-09-11 16:06:28.189 +10:00 [错误] 不允许请求的范围:“api1”;未找到 APIScope:“”

日志条目 5:2017-09-11 16:06:28.180 +10:00 [调试] 在数据库中找到“”API 范围

但是我们的报告工具是 SumoLogic,它将每个条目视为单个条目,并且每个条目在提取时不会提供完整的信息,我想知道的是我们如何将这些顺序消息组合成一个。

我们可以在 IdentityServer4/Sumologic/SeriLog 上做些什么。

谢谢, 内哈

4

1 回答 1

0

我会尝试将 SeriLog 的输出更改为 JSON,请参阅此链接:https ://github.com/serilog/serilog/wiki/Formatting-Output

Log.Logger = new LoggerConfiguration()
    .WriteTo.File(new JsonFormatter(), "log.txt")
    .CreateLogger();

让我知道这是否适合您。

于 2017-09-23T13:34:54.217 回答