【问题标题】:What's the meaning of the time stamp in nlog when async is on?开启异步时nlog中的时间戳是什么意思?
【发布时间】:2014-06-02 16:03:52
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net timestamp performance-testing nlog


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

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-25
      • 1970-01-01
      • 2012-08-17
      • 2012-03-31
      • 2011-09-14
      • 2011-03-24
      • 2015-05-30
      • 2021-06-20
      • 1970-01-01
      相关资源
      最近更新 更多