gpt4 book ai didi

c# - Serilog ThreadId 始终输出为 1

转载 作者:行者123 更新时间:2023-12-05 01:30:26 35 4
gpt4 key购买 nike

我在 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();

日志输出

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
2021-04-09 06:30:09.132 [INF] <blackstone> <1> Loading CentreDetails
2021-04-09 06:30:09.560 [INF] <wavell> <1> Loading ParentDetails
2021-04-09 06:30:09.554 [INF] <blackstone> <1> Loading ParentDetails
2021-04-09 06:30:09.560 [INF] <forest> <1> Loading ParentDetails

最佳答案

听起来像你想要的Serilog.Enrichers.ProcessEnrich.WithProcessId() 而不是 WithThreadId()

关于c# - Serilog ThreadId 始终输出为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67014199/

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