2010-06-18 55 views
1

我想利用DotNetNuke日志系统(包括事件日志记录和异常日志记录)。dotnetnuke事件日志记录 - 同步?潜在的速度问题?

但是,如果我们开始记录太多事件,我担心潜在的性能问题。

日志记录系统是否将事件异步地写入数据库?如果没有,是否有一种有效的方法来实现这一点?我讨厌让最终用户等待几个数据库写入来查看页面。

谢谢

回答

2

简短的回答:这取决于你的DNN配置。默认情况下,日志是同步的。

详细的解答

事件日志使用LoggingProvider在web.config成立。

DotNetNuke附带DBLoggingProvider和XMLLoggingProvider。 默认情况下,DotNetNuke使用写入EventLog表的DBLoggingProvider。

这是如何完成的,取决于主机设置和站点的事件查看器设置。如果选中“启用事件日志缓冲区”,则在主机设置中,日志记录应该是异步的。 应该是,因为异步日志记录使用调度程序,并且如果调度程序未启用或停止,日志记录将立即生效。

即时记录也可以通过LogInfo.BypassBuffering属性强制执行。

事件日志设置根据日志类型确定将要记录的内容。如果您在模块中使用事件日志记录,则必须在EventLogController.AddLog方法中传递日志类型。我通常使用EventLogType.HOST_ALERT,因为这些在Event Log视图中很容易识别,并且默认情况下会记录(与ADMIN_ALERT不同)。

欲了解更多详情,请查看DNN的源代码AddLog实现:

DBLoggingProvider.AddLog(ByVal LogInfo As LogInfo) 

另请参见: DotNetNuke Host Settings Explained

+0

伟大的答案,谢谢! – 2010-06-19 17:23:26