gpt4 book ai didi

asp.net-core - 多次使用 serilog 推送属性

转载 作者:行者123 更新时间:2023-12-04 13:41:21 24 4
gpt4 key购买 nike

我有一个按照这篇博文实现的 serilog 中间件类 https://blog.datalust.co/smart-logging-middleware-for-asp-net-core/

如果我想多次使用 LogContext.PushProperty 在我的日志记录中推送各种信息,我只需要将以下代码放入我的 Invoke 方法中:

LogContext.PushProperty("Address", httpContext.Connection.RemoteIpAddress);
LogContext.PushProperty("Username", httpContext.User.Identity.IsAuthenticated ? httpContext.User.Identity.Name : null);

LogContext.PushProperty 的文档仅显示添加一个属性并说要使用 using 块还是我需要执行以下操作:
using (LogContext.PushProperty("Address", 
httpContext.Connection.RemoteIpAddress))
using (LogContext.PushProperty("Username", httpContext.User.Identity.IsAuthenticated ? httpContext.User.Identity.Name : null))
{ //rest of invoke method here }

最佳答案

这是一个例子 https://github.com/serilog/serilog/wiki/Enrichment

log.Information("No contextual properties");

using (LogContext.PushProperty("A", 1))
{
log.Information("Carries property A = 1");

using (LogContext.PushProperty("A", 2))
using (LogContext.PushProperty("B", 1))
{
log.Information("Carries A = 2 and B = 1");
}

log.Information("Carries property A = 1, again");
}

只需使用多人游戏
    using (LogContext.PushProperty("A", 2))
using (LogContext.PushProperty("B", 1))
{ ... }

关于asp.net-core - 多次使用 serilog 推送属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56700818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com