2013-01-24 10 views
2

我有一個asp.net頁面有幾個控件(ListViews,Buttons等)。即使我不處理這些事件,我是否可以獲取由我的頁面觸發的所有ASP.net控件事件的日誌?

我想生成一個日誌(可能輸出到跟蹤日誌)所有的:

  1. 事件通過回傳用戶引起的(如點擊次數,SelectedIndexChanging等)
  2. 事件不是由用戶造成的,而是由每個控件觸發,無論是什麼(例如init)或由於程序化操作(例如由程序化數據綁定引起的ListView的ItemDataBound事件)。

即使我沒有專門用於處理例如一個ListView ItemDataBound事件,我想看到這表明它發射的日誌條目。

我知道這可能是一個非常非常長的名單(即每個控制火災的許多事件和每個網頁有許多控件),但仍希望看到它,如果可能的。

謹以此作參考,並可能用於調試目的,所以我可以看到每個控制在做什麼。這也可能讓我想到一個事件來處理。我知道理論上的API文檔提供了這個信息,但是我想要一個特定於我的ASP.net頁面的交互式日誌。

回答

0

您是否探索過ASP.NET的跟蹤功能?這聽起來和你想要的非常相似。概述是here

你看着跟蹤數據在頁面的底部,或者在一個單獨的跟蹤查看器的選項。您也可以通過編程方式訪問它。現在

,這隻會列出觸發事件:在一般情況下,像大多數ASP.NET Web控件都寫,如果沒有處理一個事件,代碼不養它。所以你可能只會看到正在處理的事件。

+0

謝謝,我知道一些跟蹤。從我可以告訴你必須手動使用每個事件處理程序中的Trace.Warn我想記錄每個事件,是嗎?我想自動獲得該功能。也想以某種方式獲得每個控件的Init事件(就像例子),即使我不處理或每個SelectedIndexChanging即使我不處理它(說我忘了),但我想你說這可能是不可能的,如果我沒有一個處理程序。 –

+0

聲明:我不是專家,因爲我從來沒有試圖做你想做的事情。但是,我發現微軟的EntLib Unity框架可以幫助你解決注入政策問題。這裏有一篇文章:http://www.codewrecks.com/blog/index.php/2009/01/31/unity-and-aop-in-enterprise-library/ –

+0

謝謝。我會看一看。 –

相關問題