我有一个简单的控制台应用程序,其中包含以下代码,用于登录 Splunk,但该应用程序无法正常工作。我在 Splunk 仪表板中没有看到任何日志。我已经屏蔽了 url 和 token。
var url = "https://http-inputs-*****.splunkcloud.com/services/collector";
var log = new LoggerConfiguration()
.WriteTo.EventCollector(url, "49A89C45-****-47D2-8A4C-EF89DA*****", index:"app_crius_services")
.CreateLogger();
log.Error(JsonConvert.SerializeObject(new ExceptionMessage
{Index = "app_crius_services", Event = new Event()}));
log.Debug(JsonConvert.SerializeObject(new ExceptionMessage
{Index = "app_crius_services", Event = new Event()}));
log.Information(JsonConvert.SerializeObject(new ExceptionMessage
{Index = "app_crius_services", Event = new Event()}));
我使用相同的 URL 和 token 通过 Postman 发布类似类型的消息,并且这些消息成功到达(我可以在 Splunk 仪表板中看到它们)。
我做错了什么,还是我的记录器配置不正确?
最佳答案
因此,serilog 实际上对事件进行批处理,并在一定时间间隔内扫描这些批处理以进行 http post,问题是在扫描发生之前程序已退出。以下链接演示了如何强制冲洗水槽。
关于.net-core - Serilog Splunk 不记录消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67606081/