亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

Windows事件日志

Windows 操作系統(tǒng)將與計(jì)算機(jī)的系統(tǒng)性能、應(yīng)用程序和安全方面相關(guān)的每個(gè)事件記錄在 C:\WINDOWS\system32\winevt 的日志中。

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

打開(kāi)Windows事件查看器的方法:

1、運(yùn)行輸入eventvwr

2、Windows+X打開(kāi)的超級(jí)菜單中選擇事件查看器。

 3、桌面計(jì)算機(jī)圖標(biāo)右鍵選擇【管理】,在計(jì)算機(jī)管理中打開(kāi)【事件查看器】 

事件查看器打開(kāi)后顯示如下:

有三個(gè)默認(rèn)事件日志:應(yīng)用程序、系統(tǒng)和安全。 安全日志(只讀的)。

注意:事件是跟注冊(cè)表關(guān)聯(lián)起來(lái)的,所以推薦以管理員權(quán)限運(yùn)行,否則有些類(lèi)別下的日志無(wú)法讀取/寫(xiě)入/刪除。

像平常我們開(kāi)發(fā)的程序如果想更方便的查找錯(cuò)誤,除了本地日志外,還可以將日志寫(xiě)入到Windows事件日志中的【應(yīng)用程序和服務(wù)日志】類(lèi)別下,可以方便我們快速查找問(wèn)題。 

EventLog類(lèi)

在C#中操作Windows事件日志主要使用EventLog類(lèi),EventLog類(lèi)內(nèi)部使用了ReadEventLogW/ReportEventW等win32 api函數(shù)。

.Net Framework中,直接使用System.Diagnostics.EventLog類(lèi)即可,

.NET Core項(xiàng)目中,需要引用System.Diagnostics.EventLog

EventLog類(lèi)提供了實(shí)例化版本的方法和靜態(tài)方法兩種,類(lèi)似FileInfo和FIle類(lèi)。

本文以EventLog類(lèi)的靜態(tài)方法進(jìn)行演示。 

獲取日志名字

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

運(yùn)行輸出如下

獲取日志下的單個(gè)記錄

這里我們以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($"級(jí)別:{entry.EntryType}");                  Console.WriteLine($"創(chuàng)建時(shí)間:{entry.TimeGenerated}");                  Console.WriteLine($"來(lái)源:{entry.Source}");                  Console.WriteLine($"事件ID:{entry.InstanceId}");                  Console.WriteLine($"日志內(nèi)容:{entry.Message}");                  Console.WriteLine();              }          }      }  }

運(yùn)行結(jié)果如下:

創(chuàng)建日志

寫(xiě)入記錄到系統(tǒng)日志下

這里以【應(yīng)用程序】日志為例,操作如下:

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

運(yùn)行后到事件查看器查看寫(xiě)入的日志

寫(xiě)入記錄到自定義日志類(lèi)別下

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

運(yùn)行后,可以看到增加了一個(gè)MyLog日志,并增加了一條類(lèi)型為警告的記錄

清除日志下的所有記錄

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

刪除日志

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

示例代碼

附件:EventvwrMgmtDemo.zip


閱讀原文:原文鏈接


該文章在 2025/6/23 14:18:30 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved