2012-05-30 34 views
2

我的商店在IIS 7上使用MVC3/FUBU。我最近在生產中加入了一些東西,我希望使用日誌解析器從IIS日誌中收集指標。我之前做過很多次,但是因爲MVC3路由的格式爲/ api/person //地址/日誌在/ uristem列中保存/ api/person/123 /地址/ 456。從IIS日誌中提取不同的寧靜MVC路線

有沒有人有任何想法如何從IIS日誌獲取有關特定路線的數據?

作爲〔實施例: 日誌就像這樣:

cs-uri-stem 
/api/person/123/address/456 
/api/person/121/address/33 
/api/person/1555/address/5555 

輸出,如: 總點擊= 3

回答

4

好吧,我最終處理這個問題的方式是創建一個HttpModule,它將從HttpContext中提取路由模式並將其作爲URL_PATTERN放入服務器變量中。一旦它在server_variables中,IIS高級日誌記錄就可以獲取並保存它。如果當前請求沒有路由,它只會使用url的正常本地部分(因此它將匹配日誌中的cs-uri-stem)。

現在SQL /日誌分析器查詢: 選擇url_pattern,算上從(yourlogs)(url_pattern),其中間的時間戳(開始/結束)組由url_pattern爲了通過計數(url_pattern)遞減 會給我回的數點擊我應用中的每個端點。

這顯然可以在fubu行爲中完成,但我們有一堆經典的asp和MVC3運行(我知道我知道...),這將處理所有這些。同樣你也可以使用RaiseTraceEvent從模塊中「發佈」一個字段,然後IIS高級日誌記錄可以得到預測結果,但它讓我覺得很適合試圖找出它,所以我只是用我所擁有的。

我已經發布了這個問題遍佈引用fubu和MVC3的地方,我已經得到了一點沒有興趣,這真的讓我驚訝。如果你無法輕易確定正在使用的路線,人們如何在日誌中查詢信息。

https://gist.github.com/2854760

+0

+1之外,在IIS日誌中還有/ api/person/{personid}/address/{addressid}用於共享代碼。 – Shyju

0

您可以使用記事本的正則表達式搜索功能++。 This文章可能會有所幫助。

+0

我們產生大約每天IIS的1.5GB日誌有問題的網站。理想情況下,我想知道的是如何做的是讓IIS記錄爲特定網址選擇的路由的正則表達式。因此,除了cs-uristem – Grummle