【问题标题】:log4net :comparing adonetappender and rollingfileappenderlog4net:比较 adonetappender 和 rollingfileappender
【发布时间】:2010-01-20 16:12:36
【问题描述】:

我正在尝试看看这些附加程序中的哪一个会执行得更好(时间越短越好)。

RollingFileAppender 还是 ADONetAppender?

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

我看到我的 WebServer “保持”滚动文件。我可以设置类似的东西

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

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

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

【问题讨论】:

    标签: log4net appender rollingfileappender adonetappender


    【解决方案1】:

    如果您的 ADONetAppender 失去连接,它将停止记录,但可以选择

      <reconnectonerror value="true" />
    

    它将尝试重新连接。

    【讨论】:

      【解决方案2】:

      使用滚动文件附加程序我们有更好的运气。我们注意到,如果出现网络故障,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

      【讨论】:

      • 有趣的观点。我在想记录到数据库会更快更容易(考虑到多个应用程序将记录到同一个接收器)
      • 我们的想法是一样的。如果您可以将数据库保存在同一台服务器上,那么这可能是可行的方法。但是,我们不会将数据库与应用程序保存在同一台服务器上,因此这不是我们的选择。
      【解决方案3】:

      我通常将 RollingFileAppender 用于本地磁盘 - 这是健壮且快速的(如果您无法写入本地磁盘,通常会遇到致命问题)。

      写入 ADO.NET 可能会失败 - 例如,如果日志数据库在您的应用程序运行时出于备份目的而脱机。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-17
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 2015-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多