2010-09-22 83 views

回答

2

我推薦使用log4net或NLog等日誌框架。這些框架允許您登錄到許多目的地,更重要的是,它們允許您在完成應用程序後作出決定,即可以配置日誌消息的寫入位置。

就我個人而言,如果是web應用程序,我會登錄到數據庫。

1

或者,你可以使用通用日誌的基礎設施來隱藏實現和隨意記錄器之間切換
http://netcommon.sourceforge.net

如果您存儲記錄在很大程度上是由你將如何消費記錄數據決定(即讀,解釋日誌數據,如果需要採取行動)。如果分析日誌數據的人可以訪問該計算機並且不是關鍵業務,則只需登錄文件即可。如果機器對您的業務至關重要,那麼您可能需要某種監控軟件並將日誌記錄發佈到事件日誌中,否則WMI會變得有趣。

如果您登錄到文件,請考慮您需要多長時間記錄數據以及您需要多少時間。您可以使用滾動日誌文件來確保它們不會變得很大並佔用一半的硬盤空間。您也可以在沒有任何錯誤的情況下使用篩選器或優先級記錄錯誤,並在調查問題時打開篩選器進行調試或冗長。

IIRC log4net和/或企業庫可以登錄到WCF服務跟蹤查看器可讀的格式,請參閱http://msdn.microsoft.com/en-us/library/ms732023.aspx(但我不確定那個)。儘管Log4net有一個儀表盤。

+0

你能不能詳細說明「消耗結果」。謝謝。 – HotTester 2010-09-22 06:40:55

+0

我的意思是'讀取和解釋日誌數據,如果需要採取行動'。如果您有監控解決方案,這可以是完全手動的,或者是部分自動化的。 – stombeur 2010-09-22 06:47:38

1

有兩種方法:將日誌詳細信息保存到數據庫中或創建一個簡單的文本文件,以便您可以跟蹤事件。

在這裏,我給出的只是簡單的代碼,以便如何跟蹤事件並保持日誌詳細信息並將日誌詳細信息保存到文本文件中。它可以幫助你解決你的問題。

所有你必須輸入名字空間的第一:

using System.IO; 

我創造了小功能來跟蹤日誌詳情 -

public void LogEntry(string msg, string path) 
    { 
     try 
     { 
     //It will open the file, append the your message and close the file    
     File.AppendAllText(path,msg);    
     } 
     catch (Exception ex) 
     { 
      ex.GetBaseException(); 
     } 
    } 

在此功能,您必須通過兩個參數

  1. 消息
  2. 文字的路徑文件

例如

string logmsg; 
logmsg = "** " + DateTime.Now.ToString() + "||" + "User:" + UserName + "||" + " EventDesc: Login Attempt Failed"; 
        l1.LogEntry(logmsg, Server.MapPath("LoginEvent.txt")); 

這裏LoginEvnet.txt是我在哪裏存儲日誌信息的文本文件的名稱。

logmsg-這是你必須跟蹤或存儲在日誌文件中的消息

相關問題