2009-12-03 59 views
2

這將是一個相當廣泛的問題,任何建議,示例,鏈接都非常歡迎!asp.net web用戶的日誌會話和會話更改

我正在尋找一種很好的方式來記錄我的用戶會話以及網站上的操作到某個點。

有問題的網站是進行預訂的網站。用戶首先進行搜索,完成數據收集和選擇的幾個步驟,最後進行預訂。

因此,我需要實現的是用戶在每個步驟中對當前會話變量的某種記錄。也許還有其他一些有效的信息。日誌記錄應該最好對數據庫進行。

最後,我想將所有這些會話與預訂參考相關聯。我們的目標是,如果預訂出現問題,或者需要調查情況,我們需要所有信息。

我知道log4net是日誌記錄的一種流行選擇,爲了簡單目的,我自己用它做了一點,但是找不到任何有關我的情況的好例子。

這應該是一個普遍的情況,我很好奇別人怎麼做。

回答

1

我在某個時候設置的方式是創建兩個表格。每個會話持有一行,包含會話數據(id,timestamp,ip,用戶名(如果有)等)和session_data表,每個會話有幾行,每行包含sessionid(引用會話表)。一個關鍵字(描述記錄的內容,如'entryform','searchform'或'orderform')和一個包含序列化會話狀態對象的XML字段。

使用global.asa的session_onstart在會話表中插入一行。根據需要在session_data中插入行。

我用了簡單的存儲過程,但我收集你可以設置log4net來插入該行。一個警告:我一次性設置nlog記錄會話和會話數據,但是nlog(以及我也認爲log4net)登錄到它的線程上,並不總是寫入數據庫。爲了存儲關鍵會話數據,我將其從nlog中切換出來(但將其用於所有其他調試/記錄/跟蹤目的)

+0

感謝您的建議。這絕對是一個很好的方法,但我寧願希望一個已經完成的工具,它存在任何東西。它負責處理會話數據的所有插入操作,以及一種很好的方式來查看它。 – 2009-12-03 19:32:45

+0

[給用戶界面的提示:我們需要在'添加評論'和'添加答案'之間進行更多分離] >>尋找幾乎相同的東西 - 你會認爲這樣的工具會存在 - 創建該工具的工具已經存在logparser可能是一些非常有趣的開發者實用程序的基礎 - 想想IIS7的firebug – justSteve 2010-05-04 22:25:44