LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#如何查看/寫入日志到Windows事件查看器

admin
2025年6月21日 22:35 本文熱度 79

Windows事件日志

Windows 操作系統將與計算機的系統性能、應用程序和安全方面相關的每個事件記錄在 C:\WINDOWS\system32\winevt 的日志中。

事件查看器從這些原始事件日志中讀取信息,然后以可讀格式呈現信息。

打開Windows事件查看器的方法:

1、運行輸入eventvwr

2、Windows+X打開的超級菜單中選擇事件查看器。

 3、桌面計算機圖標右鍵選擇【管理】,在計算機管理中打開【事件查看器】 

事件查看器打開后顯示如下:

有三個默認事件日志:應用程序、系統和安全。 安全日志(只讀的)。

注意:事件是跟注冊表關聯起來的,所以推薦以管理員權限運行,否則有些類別下的日志無法讀取/寫入/刪除。

像平常我們開發的程序如果想更方便的查找錯誤,除了本地日志外,還可以將日志寫入到Windows事件日志中的【應用程序和服務日志】類別下,可以方便我們快速查找問題。 

EventLog類

在C#中操作Windows事件日志主要使用EventLog類,EventLog類內部使用了ReadEventLogW/ReportEventW等win32 api函數。

.Net Framework中,直接使用System.Diagnostics.EventLog類即可,

.NET Core項目中,需要引用System.Diagnostics.EventLog

EventLog類提供了實例化版本的方法和靜態方法兩種,類似FileInfo和FIle類。

本文以EventLog類的靜態方法進行演示。 

獲取日志名字

//獲取所有事件日志 var logs = EventLog.GetEventLogs();
 foreach (var item in logs) {     //輸出事件日志的名字(顯示名字[日志名字])     //日志名字是用于讀取/寫入時的名字     Console.WriteLine(item.LogDisplayName + $"[{item.Log}]"); }

運行輸出如下

獲取日志下的單個記錄

這里我們以Visual Studio日志為例,輸出Visual Studio日志下的所有記錄。

static void Main(string[] args)  {      PrintLogClass();
      PrintLogEntry("Visual Studio");  }
  static void PrintLogEntry(string logName)  {      //獲取所有事件日志      var logs = EventLog.GetEventLogs();
      foreach (var item in logs)      {          if(item.LogDisplayName == logName)          {              foreach (EventLogEntry entry in item.Entries)              {                  Console.WriteLine($"級別:{entry.EntryType}");                  Console.WriteLine($"創建時間:{entry.TimeGenerated}");                  Console.WriteLine($"來源:{entry.Source}");                  Console.WriteLine($"事件ID:{entry.InstanceId}");                  Console.WriteLine($"日志內容:{entry.Message}");                  Console.WriteLine();              }          }      }  }

運行結果如下:

創建日志

寫入記錄到系統日志下

這里以【應用程序】日志為例,操作如下:

//需要先注冊一個來源,跟日志綁定if(!EventLog.SourceExists("MyApplicationLogSource")){    EventLog.CreateEventSource("MyApplicationLogSource""Application");}
EventLog.WriteEntry("MyApplicationLogSource""測試日志內容",EventLogEntryType.Warning,100010);

運行后到事件查看器查看寫入的日志

寫入記錄到自定義日志類別下

//創建來源并跟日志(MyLog)綁定 if (!EventLog.SourceExists("MySource")) {     EventLog.CreateEventSource("MySource""MyLog"); }
 //寫入記錄到MyLog下 EventLog.WriteEntry("MySource""你可以指定日志內容"EventLogEntryType.Warning10010);

運行后,可以看到增加了一個MyLog日志,并增加了一條類型為警告的記錄

清除日志下的所有記錄

//獲取所有事件日志 var logs = EventLog.GetEventLogs();
 foreach (var item in logs) {     if (item.LogDisplayName == logName)     {         //清除所有記錄         item.Clear();         break;     } }

刪除日志

//刪除日志來源EventLog.DeleteEventSource("MySource");//刪除日志EventLog.Delete("MyLog"); 

示例代碼

附件:EventvwrMgmtDemo.zip


閱讀原文:原文鏈接


該文章在 2025/6/23 14:18:30 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本久久免费精品国产 | 亚洲综合色在线观看一区二区 | 五月天狠狠爱-伊人久久综合网 | 亚洲熟女乱综合一区二区 | 先锋亚洲国产AV | 亚洲日本韩在线观看 |