asp.net Web用户的日志会话和会话更改

时间:2009-12-03 16:34:25

标签: asp.net session logging log4net

这将是一个相当广泛的问题,非常欢迎任何建议,示例和链接!

我正在寻找一种很好的方法来记录我的用户会话,以及网站上的某些操作。

有问题的网站是进行预订的网站。用户首先进行搜索,进行数据收集和选择的几个步骤,最后进行预订。

所以我需要实现的是在用户采取的每个步骤中对当前会话变量进行某种记录。也许还有其他一些有效的信息。最好应该对数据库进行日志记录。

最后,我想将所有这些会话与预订参考相关联。我们的目标是,如果预订出现问题,或者我们需要调查情况,并提供我们需要的所有信息。

我理解log4net是一个很受欢迎的日志记录选择,并且为了简单的目的我自己使用了一些,但找不到有关我的情况的任何好例子。

这应该是一种常见的情况,我很好奇其他人是如何做到的。

1 个答案:

答案 0 :(得分:1)

我在某个时候设置它的方法是创建两个表。每个会话拥有一行,包含一些会话数据(id,timestamp,ip,用户名(如果有),其他东西)和session_data表,每个会话有几行,每行包含一个sessionid(引用会话表)。一个键(描述记录的内容,如'entryform','searchform'或'orderform')和一个包含序列化会话状态对象的XML字段。

使用global.asa的session_onstart在会话表中插入一行。根据需要在session_data中插入行。

我使用了简单的存储过程,但我认为你可以设置log4net来插入行。一个警告:我确实设置了nlog一次来记录会话和会话数据,但是nlog(我想也是log4net)在其线程上登录并且不总是写入数据库。我从nlog转移到存储关键会话数据(但用于所有其他调试/记录/跟踪目的)