相关疑难解决方法(0)

在.net核心的NLog中添加日志消息属性

NLog用于在.net核心中记录消息.

我加入NLogStartUp.cs,如下所示:

loggerFactory.AddNLog();
Run Code Online (Sandbox Code Playgroud)

要记录到文件,我使用以下方法:

logger.LogInformation("Message");
Run Code Online (Sandbox Code Playgroud)

我想在我的消息中添加自定义NLog事件属性.但是LogInformation()不允许我传递它.我怎样才能做到这一点?

error-logging nlog .net-core asp.net-core

6
推荐指数
1
解决办法
5371
查看次数

使用依赖项注入的自定义NLog LayoutRenderer与构造函数

我正在尝试编写一个自定义LayoutRenderer来记录从对象读取的数据,但是NLog似乎不能与依赖注入一起正常工作。

这是我的CustomLayoutRenderer:

[LayoutRenderer("custom-value")]
public class CustomLayoutRenderer : LayoutRenderer
{
    private readonly RequestContext _context;

    public CustomLayoutRenderer(RequestContext context)
    {
        _context = context;
    }

    protected override void Append(StringBuilder builder, LogEventInfo logEvent)
    {
        builder.Append(_context.CustomValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

它正在使用此RequestContext对象:

public class RequestContext
{
    public string CustomValue { get; set; } = "Valid custom value";
}
Run Code Online (Sandbox Code Playgroud)

我还在连接DI,配置NLog并在Startup.cs中注册我的LayoutRenderer:

    public void ConfigureServices(IServiceCollection services)
    {
        // ...
        services.AddScoped<RequestContext>();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        LayoutRenderer.Register<CustomLayoutRenderer>("custom-value");

        loggerFactory.AddNLog();
        app.AddNLogWeb();
        env.ConfigureNLog("nlog.config");
        // ...
    }
Run Code Online (Sandbox Code Playgroud)

然后,我尝试${custom-value}在nlog.config中使用我的设备,但是在AddNLog()通话中出现错误: …

c# nlog asp.net-core

5
推荐指数
1
解决办法
2192
查看次数

NLog自定义LayoutRenderer用于范围缩进

任何人都可以为我提供一个非常样本的自定义layoutrenderer用于nlog吗?

举例来说,我希望在im log中进行缩进

如果我从方法C调用方法B

文本日志文件如下所示:

Inside Method C
       Inside Method B
Run Code Online (Sandbox Code Playgroud)

等等.

c# logging nlog

4
推荐指数
1
解决办法
5355
查看次数

标签 统计

nlog ×3

asp.net-core ×2

c# ×2

.net-core ×1

error-logging ×1

logging ×1