小编KAH*_*tle的帖子

Serilog ThreadId始终输出为1

我在 outputTemplate 中有一个 ThreadId,但日志始终将其记录为 1。我有多个应用程序实例同时运行到同一个日志中,因此希望我可以根据 ThreadId 分离实例。

谁能建议如何解决这个问题?ThreadName 在应用程序设置一些内容并识别其运行的区域后分配,因此不是最好的分隔符。此外,一个区域中可以同时运行多个功能。因此需要 ThreadId

Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(builder.Build())
            .Enrich.FromLogContext()
            .Enrich.WithThreadId()
            .Enrich.WithThreadName()
            .WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] <{ThreadName}> <{ThreadId}> {Message:lj}{NewLine}{Exception}")      
            .WriteTo.File(@".\log\log.txt", 
                             rollingInterval: RollingInterval.Day, 
                             shared: true,
                             outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] <{ThreadName}> <{ThreadId}> {Message:lj}{NewLine}{Exception}")
            .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

日志输出

2021-04-09 06:30:09.059 [INF] <blackstone> <1> Action : Task A
2021-04-09 06:30:09.059 [INF] <wavell> <1> Action : Task A
2021-04-09 06:30:09.060 [INF] <forest> <1> Action : Task A
2021-04-09 06:30:09.130 [INF] <wavell> <1> Loading CentreDetails
2021-04-09 06:30:09.130 [INF] <forest> <1> Loading CentreDetails …
Run Code Online (Sandbox Code Playgroud)

c# logging serilog-sinks-file

5
推荐指数
2
解决办法
4893
查看次数

标签 统计

c# ×1

logging ×1

serilog-sinks-file ×1