程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#獲取操作系統日志信息

C#獲取操作系統日志信息

編輯:關於C#

利用C#編程,查看系統日志,介紹兩個日志類:EventLog和EventLogEntry類,以及與系統日志進行交互。

.NET框架類庫提供了EventLog類和EventLogEntry類與系統日志進行交互.二者屬於System.Diagnostics命名空間.

首先聲明一變量:private EventLogEntryCollection eventCollection 代表系統日志的集合.

EventLog類的屬性主要有:

Entris返回一個EventLogEntryCollection型值,代表事件日志的內容.

Log 獲取或者返回日志的名稱,其中應用程序日志是Application,系統日志是System,安全日志是Security,默認值為空字符串.

LogDisplayName 獲取事件日志的友好名稱

MachineName 獲取或設置在其上讀取或寫入事件的計算機名稱

Source 獲取或設置在寫入事件日志時要注冊和使用的源名稱

EventEntryCollection類定義EventLogEntry實例集合的大小和枚舉數.

EventLogEntry類的一些主要屬性如下:

Category 獲取與該項的CategoryNumber對應的文本

CategoryNumber 獲取該項的類別號

Data 獲取與該項對應的二進制數據

EntryType 獲取該項的事件類型,其值屬於EventLogEntryType枚舉,這個枚舉的主要成員如下:

Error 錯誤事件,它指示用戶應該知道的嚴重問題,比如功能或數據丟失

FailureAudit 失敗審核事件.它指示當審核訪問嘗試失敗,比如打開文件的嘗試失敗時發生的安全事件

Information 信息事件.它指示重要,成功的事件

SuccessAudit 成功審核事件.它指示當審核訪問嘗試成功,比如成功登錄時發生的安全事件

Warning 警告事件.它指示並不立即具有重要性的問題,但此問題可能表示將來會導致問題的條件.

EventID 獲取此事件項的應用程序特定事件標識符

Index 獲取該項在事件日志中的索引

MachineName 獲取在產生該項的計算機的名稱

Message 獲取與該事件的本地化消息

ReplacementStrings 獲取對應該項替換字符串

Source 獲取生成該事件的應用程序的名稱

TimeGenerated 獲取生成該事件的本地時間

TimeWritten 獲取在日志寫入該事件的本地時間

UserName 獲取負責該事件的用戶的名稱

示例代碼如下:

using System.Diagnostics;
using System;
namespace LogView
{
public class SysLogView
{
private EventLogEntryCollection eventCollection;
private EventLog systemEvent;

public SysLogView()
{
systemEvent = new EventLog();
systemEvent.Log = "System";
eventCollection = systemEvent.Entries;
}
private void LoadEventLog(int c)
{
EventLog systemEvent = new EventLog();
systemEvent.Log = "System";
eventCollection = systemEvent.Entries;
int length = eventCollection.Count;
EventLogEntry entry = eventCollection[c];
string[] title = {
entry.EntryType.ToString(),
entry.TimeGenerated.ToLongDateString(),
entry.TimeGenerated.ToLongTimeString(),
entry.Source,
entry.Category,
entry.EventID.ToString(),
entry.UserName,
entry.MachineName
};
for(int j=0;j {
Console.WriteLine(title[j]);
}
Console.WriteLine("\n" + eventCollection[c].Message);
}
private string DisplayEventCount()
{
return(eventCollection.Count.ToString());
}
public static void Main(string[] args)
{
SysLogView slv = new SysLogView();
if (args.Length == 1)
{
int x = Convert.ToInt32(args[0]);
slv.LoadEventLog(x);
}
else
{
Console.WriteLine("Event count: " + slv.DisplayEventCount());
Console.WriteLine("Query Message: SysLogView.exe Number");
}
}
}
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved