在.NET(正式版)環境下讀寫系統日誌 (轉)
在(正式版)環境下讀寫日誌:namespace prefix = o ns = "urn:schemas--com::office" />
作為商業應用,尤其是下的應用程式,問題是第一位的。這裡所說的安全包括兩個方面,一是系統本身的安全,也就是系統本身的強壯性,另一方面是系統在使用時,的誤操作,或惡意破壞時引起的安全問題。
本文並不想介紹系統全方面的問題,如果你有興趣的可以去查閱相關資料。這裡,我想要介紹的是如何在系統發生錯誤,或者遭到破壞時,如何把相關資訊記錄下來。比如,當有人試圖登入的時候,如何記錄下時間,他所在機器的IP等一系列資訊,以便管理員採取相關的措施。
有兩種方式可供選擇,一是將相關資訊寫入指定的的表中。另一種方法就是寫入系統日誌裡。將資訊寫入資料庫,在.NET環境下,需要例項化許多,如Connection ,SqlCommand 等,還要進行資料庫的連線等工作,僅僅是為了插入一條記錄。相對來說,這種方式比較消耗系統資源,如果,系統本身就沒有資料庫支援,那麼這種方法根本不可行。本文要介紹的是第二種方式,將資訊寫入系統日誌。
在.NET的System.Diagnostics名稱空間裡提供了幾個類,專門用來日誌。
一:向日志裡寫入資訊
首先,我們要引用System.Diagnostics名稱空間。然後,我們來例項化EventLog類,我們的大部分工作都是用這個類來完成。
EventLog sample=new EventLog();
該類提供的WriteEntry方法,讓我們將資訊寫入系統日誌,一般是寫入應用程式日誌裡。方法的定義如下
public void WriteEntry(
string ,
string message,
EventLogEntryType type,
Int eventID,
short category,
byte[] rawData
);
例如:
EventLog.WriteEntr("sourcei","message",EventLogEntryType.Warning ,11,21);
介紹一下該方法引數的含意。
1) Source 表示記錄的來源,字串型
2) Message 表示記錄的相關資訊,字串型
3) Type 表示記錄型別,是列舉型別,有以下選項
ü Error 錯誤
ü Warning 警告
ü Information 資訊
ü SuccessAudit 成功稽核
ü FailureAudit 失敗稽核
4) EventID 表示事件ID號,整型
5) Category 表示事件的分類,短整型
6) RawData 記錄和事件相關的二進位制資訊,位元組陣列
試一下,在事件檢視器的應用程式日誌裡,你會看到剛插入的記錄。
二:從日誌裡讀取資訊
從日誌裡讀取資訊,我們需要使用的是EventLog的Entries方法,該方法返回的是一個集合類EventLogEntryCollection的例項,在該集合類中儲存的是EventLogEntry類的例項,該類中了日誌裡各記錄的資訊。我們可以用以下的程式來返回日誌資訊。
首先,我們要例項化一個EventLog類
EventLog sample=new EventLog();
和寫入資訊不同的是,我們在這需要指定我們從那個日誌裡讀記錄
sample.Log="Application";
我們指定的是應用程式日誌,當然,我們可以選擇別的日誌,比如系統日誌System,還有安全日誌Security
宣告一個EventLogEntryCollection類並給它賦值
EventLogEntryCollection myCollection=sample.Entries;
這樣,應用程式日誌裡的資訊都存放在了myCollection物件中,我們可以來讀取其中的資訊。
我們用foreach語句來訪問myCollection中的所有EventLogEntry物件
foreach(EventLogEntry test in myCollection)
{
Console.WriteLine(test.Message,test.Source,test.EventID);
}
這樣,你就可以在螢幕上看到日誌裡的一些資訊,當然,你還可以訪問EventLogEntry物件的其他屬性來獲取你所需要的資訊。
本文只是簡要介紹了一下如何讀寫系統的日誌檔案的方法,有很多細節並沒有詳細介紹,比如,如何讀寫別人機器的日誌,如何出錯處理等,有興趣的化可以參考MSDN。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在.NET(正式版)環境下傳送郵件 (轉)
- RAC環境下的redo日誌組重建
- 在Linux系統環境下使用GFS檔案系統Linux
- downstream環境下archive程式停止傳輸日誌Hive
- win10系統下如何搭建ndk環境_怎麼在win10系統下搭建ndk環境Win10
- 讀寫日誌函式函式
- FreeBSD 系統日誌(轉)
- 在exadata環境下配置dbfs檔案系統
- 在.NET環境下將報表匯出EXCEL和WORD (轉)Excel
- 【RAC】RAC環境下歸檔日誌格式約定
- linux環境下使用XFS檔案系統(轉)Linux
- Linux環境下的高階列印系統(轉)Linux
- Linux環境下實現NTFS分割槽完全讀寫的方法(轉)Linux
- 在linux下搭建wiki環境【轉】Linux
- 一種分散式預寫日誌系統分散式
- 在生產環境中使用預寫日誌WAL的SQLite - victoriaSQLite
- 在windows系統環境下實現NBU異機恢復Windows
- XML 在 ASP 環境下的應用(轉)XML
- 【RAC】Oracle RAC叢集環境下日誌檔案結構Oracle
- 日誌系統
- FreeBSD的系統log日誌(轉)
- SpringBoot多環境日誌配置Spring Boot
- Linux環境下發現並阻止系統攻擊(轉)Linux
- 日誌記錄 PHP下往linux目錄下寫日誌PHPLinux
- syslog簡介——系統日誌寫入APIAPI
- 在Ubuntu下搭建ASP.NET 5開發環境UbuntuASP.NET開發環境
- 雲原生環境下的日誌採集、儲存、分析實踐
- 新硬體環境下日誌模組的設計與演進
- 在Linux環境下執行DOS命令(轉)Linux
- 寫作業系統之搭建開發環境作業系統開發環境
- 在Linux系統上部署test環境Linux
- 在 Windows 環境下,有幾種開源的日誌監控軟體可供選擇,包括:Windows
- [轉]HP-UX系統日誌檔案UX
- FreeBSD系統日誌與備份(轉)
- 實驗室環境下測試千兆入侵檢測系統(轉)
- AIX系統日誌AI
- AIX 系統日誌AI
- livecd環境下chroot修復系統