我想利用DotNetNuke日志系统(包括事件日志记录和异常日志记录)。dotnetnuke事件日志记录 - 同步?潜在的速度问题?
但是,如果我们开始记录太多事件,我担心潜在的性能问题。
日志记录系统是否将事件异步地写入数据库?如果没有,是否有一种有效的方法来实现这一点?我讨厌让最终用户等待几个数据库写入来查看页面。
谢谢
我想利用DotNetNuke日志系统(包括事件日志记录和异常日志记录)。dotnetnuke事件日志记录 - 同步?潜在的速度问题?
但是,如果我们开始记录太多事件,我担心潜在的性能问题。
日志记录系统是否将事件异步地写入数据库?如果没有,是否有一种有效的方法来实现这一点?我讨厌让最终用户等待几个数据库写入来查看页面。
谢谢
简短的回答:这取决于你的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)
伟大的答案,谢谢! – 2010-06-19 17:23:26