什么';当async打开时,nlog中时间戳的含义

本文关键字:nlog 时间戳 async 什么 | 更新日期: 2023-09-27 17:58:48

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

  1. 日志文件中的时间戳是调用logger.Debug/Error/Info/Trace的时间,还是日志从缓冲区写入文件系统中的文件的时间
  2. Answer Nlog Async和Log Sequence提到,当Async打开时,日志序列的顺序是不保证的,这是真的吗
  3. 如果我设置了async=true,在进行性能测试时会对结果产生影响吗

什么';当async打开时,nlog中时间戳的含义

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

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

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