代码之家  ›  专栏  ›  技术社区  ›  ram

log4net:比较adoneappender和rollingfileappender

  •  1
  • ram  · 技术社区  · 15 年前

    我想看看哪一个附加物表现得更好(时间越短越好)。

    RollingFileAppender还是AdoneAppender?

    在选择appender时,我应该考虑哪些其他参数?

    我看到我的网络服务器“保持”在滚动文件上。我能做点什么吗

    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    

    (参考:fileappender部分 log4net documentation )在我的滚动文件追加器中,以便多个应用程序/服务器可以写入同一文件?

    我们的数据库服务器位于SAN驱动器中,但日志文件将在本地写入硬盘驱动器(或在不久的将来可能是SAN驱动器)

    3 回复  |  直到 14 年前
        1
  •  2
  •   ferventcoder    15 年前

    我们有更好的运气使用滚动文件追加器。我们注意到,如果出现网络故障,ado.net appender将停止日志记录。例如,在每周安装Service Pack后重新启动会杀死日志记录器。

    记住,如果要使用文件追加器,也意味着将日志保存在同一服务器上- http://ferventcoder.com/archive/2009/07/16/log4net-note-always-keep-your-logs-on-the-same-server.aspx

    我从来没见过最小的锁定机制。如果你真的使用它,看起来你会付出一些性能惩罚: http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.MinimalLock.html

        2
  •  3
  •   Jonas Sourlier    14 年前

    如果您的AdoneAppender断开连接,它将停止日志记录,但是使用选项

      <reconnectonerror value="true" />
    

    它将尝试重新连接。

        3
  •  0
  •   to StackOverflow    15 年前

    我通常在本地磁盘上使用rollingfileappender——这是一个健壮而快速的方法(如果不能写入本地磁盘,通常会遇到致命的问题)。

    写入ADO.NET可能会失败—例如,如果在应用程序运行时将日志数据库脱机以进行备份。

    由于性能开销,我也会避免使用minimalock,而是为每个应用程序使用一个单独的日志文件。如果您偶尔需要查看合并的日志数据,可以合并日志的相关部分,或者只需在查看器中并排打开相关部分。