91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用C#實現寫入系統日志

發布時間:2021-08-06 14:20:50 來源:億速云 閱讀:117 作者:小新 欄目:編程語言

小編給大家分享一下如何使用C#實現寫入系統日志,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

因為我不想使用自己寫文件,我的軟件是綠色的,所以把日志寫到 Windows 日志。

首先告訴大家什么是系統日志,請看下面

如何使用C#實現寫入系統日志

如果需要寫日志,需要管理員權限,如果沒有權限會出現下面異常

System.Security.SecurityException:“未找到源,但未能搜索某些或全部事件日志。 不可訪問的日志: Security

需要判斷當前是否已經存在日志,下面我來創建一個事件叫 “德熙”

if (EventLog.SourceExists("德熙"))
  {
  EventLog.CreateEventSource("德熙", "Application");
  }

這里的 Application 就是寫到哪個,一般都是選 Application ,可以從圖片看到系統的有應用程序、安全、Setup、系統幾個日志,程序一般都是寫到程序

寫日志

寫日志就不用管理權限

寫入可以使用 WriteEntry ,需要傳入寫入的日志和內容

EventLog.WriteEntry("德熙", "有個不愿告訴你名稱的程序在這里寫字符串");

這個方法還有幾個重載,可以傳入日志類型,是成功、失敗還是其他。還可以傳入 id ,通過id 可以找到為什么需要寫日志,不過需要在自己定義,還可以添加附件,于是我就不需要自己寫文件日志。

如何使用C#實現寫入系統日志 

另外給大家附上一個完整例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApp
{
 /// <summary>
 /// 系統日志
 /// </summary>
 public class PackSystemEventLog
 {
  /// <summary>
  /// 錯誤信息
  /// </summary>
  private static string ErrorInfo { get; set; }
  /// <summary>
  /// 創建系統事件日志分類
  /// </summary>
  /// <param name="eventSourceName">注冊事件源(比如說這個日志來源于某一個應用程序)</param>
  /// <param name="logName">日志名稱(事件列表顯示的名稱)</param>
  /// <returns></returns>
  public static bool CreateSystemEventLogCategory(string eventSourceName, string logName)
  {
   bool createResult = false;
   try
   {
    if (!EventLog.SourceExists(eventSourceName))
    {
     EventLog.CreateEventSource(eventSourceName, logName);
    }
    createResult = true;
   }
   catch (Exception ex)
   {
    createResult = false;
    ErrorInfo = ex.Message;
   }
   return createResult;
  }
  /// <summary>
  /// 刪除系統事件日志分類
  /// </summary>
  /// <param name="eventSource">EventName事件源</param>
  /// <returns></returns>
  public static bool RemoveSystemEventSourceCategory(string eventSource)
  {
   bool createResult = false;
   try
   {
    if (EventLog.SourceExists(eventSource))
    {
     EventLog.DeleteEventSource(eventSource, ".");
    }
    createResult = true;
   }
   catch (Exception ex)
   {
    createResult = false;
    ErrorInfo = ex.Message;
   }
   return createResult;
  }
  /// <summary>
  /// 向系統日志中寫入日志
  /// </summary>
  /// <param name="eventSource">事件源</param>
  /// <param name="msg">寫入日志信息</param>
  /// <param name="type">日志文本分類(警告、信息、錯誤)</param>
  /// <returns></returns>
  public static bool WriteSystemEventLog(string eventSource, string msg, EventLogEntryType type)
  {
   bool writeResult = false;
   try
   {
    if (!EventLog.SourceExists(eventSource))
    {
     writeResult = false;
     ErrorInfo = "日志分類不存在!";     
    }
    else
    {
     EventLog.WriteEntry(eventSource, msg, type);
     writeResult = true;
    }
   }
   catch (Exception ex)
   {
    writeResult = false;
    ErrorInfo = ex.Message;
   }
   return writeResult;
  }
  /// <summary>
  /// 刪除事件源中logName(好像刪除了所有的該分類的日志)
  /// </summary>
  /// <param name="eventSource"></param>
  /// <param name="logName"></param>
  /// <returns></returns>
  public static bool RemoveSystemEventLog(string eventSource, string logName)
  {
   bool removeResult = false;
   try
   {
    if (!EventLog.SourceExists(eventSource))
    {
     removeResult = false;
     ErrorInfo = "日志分類不存在!";
    }
    else
    {
     EventLog.Delete(logName);
     removeResult = true;
    }
   }
   catch (Exception ex)
   {
    removeResult = false;
    ErrorInfo = ex.Message;
   }
   return removeResult;
  }
  /// <summary>
  /// 獲取錯誤信息
  /// </summary>
  /// <returns></returns>
  public static string GetErrorMessage()
  {
   return ErrorInfo;
  }
 }
}

以上是“如何使用C#實現寫入系統日志”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑川县| 湟中县| 错那县| 尉犁县| 夹江县| 谢通门县| 昂仁县| 海南省| 桦南县| 鹿泉市| 黄平县| 邹城市| 张家口市| 怀仁县| 凤冈县| 南开区| 许昌市| 凌云县| 乃东县| 阜宁县| 定陶县| 宁津县| 崇仁县| 醴陵市| 东安县| 莱芜市| 西平县| 阜新市| 蓝田县| 会东县| 孝昌县| 宁乡县| 溧水县| 浮山县| 娱乐| 宜城市| 杨浦区| 渭源县| 布拖县| 高尔夫| 得荣县|