c# - 当异步开启时,nlog 中的时间戳有何含义?

标签 c# .net timestamp performance-testing nlog

当我在 NLog 的配置文件中设置 async=true 时,我对 NLog 的行为有点困惑。

  1. 日志文件中的时间戳是调用 logger.Debug/Error/Info/Trace 时的时间,还是日志从缓冲区写入文件的时间系统?
  2. 回答 Nlog Async and Log Sequence提到异步开启时无法保证日志序列的顺序,是这样吗?
  3. 如果设置async=true,对性能测试时的结果有影响吗?

最佳答案

  1. 根据NLog来源:https://github.com/NLog/NLog/blob/master/src/NLog/Logger.cs LogEventInfo 对象在日志记录调用时创建(并在该点带有时间戳)。然后,LogEventInfo 对象的写入会异步写入适当的目标。因此,日志文件中的时间戳应该代表日志记录调用本身的时间戳,而不是日志信息写入日志文件的时间。

  2. 我没有任何内容可以添加到链接的答案中。我会说xharze从事NLog开发,应该知道自己在说什么。

  3. 我的第一个猜测是,设置 async=true 会提高应用程序在日志记录方面的性能,因为应用程序在继续执行之前不必等待日志记录请求完成。

关于c# - 当异步开启时,nlog 中的时间戳有何含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23149142/

相关文章:

c# - `BeginSubscribeToStreamingNotifications` 和 `SubscribeToStreamingNotifications` 有什么区别

java - 需要一个正则表达式来验证带有 utc 的时间戳

firebase - 如何从 Flutter 的 DateTimePicker 保存 DateTime 并将其作为时间戳写入 Firebase

c# - 为什么 sharpmap 在从点映射到多边形时返回不一致的结果?

c# - 为什么 DbContext.Entry(IEnumerable<MedicalProduct>).State 在我的代码中产生 ArguementNullException?

.net - “调用-WebRequest : The underlying connection was closed: An unexpected error

c# - 将面板添加到 outlook 中的约会/日历项目窗口

android - 如果用户决定更改设备的时间会怎样?

c# - SaveChanges() 前新添加的 Entity 的 Id

.net - 在后台启动 Windows 应用程序