哪个是log4Net最快的追加器?

时间:2010-02-02 14:30:05

标签: log4net

除了ConsoleAppender之外,log4Net是哪个最快的追加器?

3 个答案:

答案 0 :(得分:18)

结帐BufferingForwardingAppender。我们使用它转发到RollingFileAppender。它批量写入并允许代码继续而无需等待写入。我们设置了一个Evaluator来强制刷新WARN阈值并将lossy设置为false,这样我们就不会错过任何消息。

<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender">
    <bufferSize value="512" />
    <lossy value="false" />
    <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
    </evaluator>
    <appender-ref ref="RollingFileAppender" />
</appender>

答案 1 :(得分:6)

你可以写一个相当于NullAppender的log4Net,这会非常快......(哎呀 - 我原本以为这个问题是关于log4j的;虽然同样的建议适用。)

当然,这不会有用 - 这让我想知道为什么你如此重视速度。通常的方法是找出你需要的东西,然后对它进行基准测试或分析,以检查它是否充分发挥作用。我怀疑在实际成为瓶颈之前,你会被淹没的数据超过你可以有效处理的数据。您是否知道日志记录的性能问题?

答案 2 :(得分:0)

你应该考虑

  1. 写入文件比写入控制台
  2. 要快得多
  3. 我想你的问题在于预生产(停止日志数据然后不使用它) 使用log.canLog确保您可以在创建数据之前进行日志记录(这通常是消费者的最佳时间)
  4. 检查您是否没有使用像用户等当前凭据一样耗时的各种字段......