我试图看看这些appender中哪一个会表现得更好(时间越短越好)。
RollingFileAppender或ADONetAppender?
选择appender时我应该考虑哪些其他参数?
我看到我的WebServer“持有”滚动文件。我可以设置类似
的内容<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
我的滚动文件appender中的(参考:log4net documentation中的FileAppender部分),以便多个应用程序/服务器可以写入同一个文件?
我们的数据库服务器位于SAN驱动器中,但日志文件将本地写入硬盘驱动器(或在不久的将来可能是SAN驱动器)
答案 0 :(得分:3)
如果您的ADONetAppender失去连接,它将停止记录,但使用选项
<reconnectonerror value="true" />
它会尝试重新连接。
答案 1 :(得分:2)
使用滚动文件appender我们有更好的运气。我们注意到,如果存在网络故障,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 :(得分:0)
我通常将RollingFileAppender用于本地磁盘 - 这是强大而快速的(如果你不能写入本地磁盘,通常会有一个致命的问题)。
写入ADO.NET可能会失败 - 例如,如果日志数据库在应用程序运行时脱机以进行备份。
由于性能开销,我也会避免使用MinimalLock,而是为每个应用程序提供单独的日志文件。如果您偶尔需要查看合并日志数据,则可以合并日志的相关部分,或者只是在查看器中并排打开相关部分。