【发布时间】:2025-12-10 23:55:01
【问题描述】:
如果我在 nlog.config 中打开了异步日志记录,ThreadID 在哪里捕获?
上下文:我正在使用 .NET、Rx 和 TPL 数据流(又名 TDP)开始一个新项目。它将大量使用异步操作和后台工作队列。
目标:在我的日志记录中,我想捕获正在执行工作的ManagedThreadId,以及并行完成工作的时间(在 Rx 中很容易出错,其中默认调度程序不是 ThreadPool)。如果我在 nlog.config 中打开了异步日志记录,那么 ThreadID 是在哪里捕获的?
关注:我在 NLog 的核心 LogEntry 类中看不到 ThreadID。例如,它不会发送到cbley/NLog.SignalR 中的浏览器。如果我在 nlog.config 中打开了异步日志记录,ThreadID 在哪里捕获?如果在呈现日志条目(在 NLog 后台线程中)之前没有捕获它,那么 ThreadId 对我来说毫无用处,我需要找到更合适的日志库。
【问题讨论】:
标签: multithreading asynchronous system.reactive nlog