2010-01-20 62 views
1

我想看看这些appender哪一个表现更好(时间越短越好)。log4net:比较adonetappender和rollingfileappender

RollingFileAppender或ADONetAppender?

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

我看到我的WebServer“搁置”到滚动文件。在我的滚动文件附加器:(在log4net documentation FileAppender部分参考),使多个应用程序/服务器可以写入同一个文件,我可以设置类似

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

我们的数据库服务器在SAN驱动器,但该日志文件将在当地写入硬盘驱动器(或可能在不久的将来,一个SAN驱动器)

回答

2

我们使用滚动文件Appender的运气比较好。我们注意到,如果出现网络故障,ADO.NET appender会停止记录。例如,每周安装一次服务包后重新启动会导致您的记录器死机。

请记住,也意味着保持你的日志在同一台服务器上,如果你是文件的appender去 - 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

+0

有趣的观点。我认为登录到数据库会更快,更容易(考虑到多个应用程序将登录到同一个接收器) – ram 2010-01-22 23:16:22

+0

我们在想同一件事。如果您可以将您的数据库保存在同一台服务器上,那么可能要走。尽管如此,我们并没有将数据库保存在与我们的应用程序相同的服务器上,所以它不适合我们。 – ferventcoder 2010-01-27 13:38:56

0

我通常使用RollingFileAppender到本地磁盘 - 这是健壮和快速(如果你不能写入本地磁盘,你通常有致命的问题)。

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

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

3

如果您ADONetAppender失去了连接,它将停止记录,但与选项

<reconnectonerror value="true" /> 

它会尝试重新连接。

相关问题