事件日志可以删除吗 事件日志
事件日志(事件日志可以删除吗)
每当发生一些未捕获的异常时,操作系统都会将异常信息写入Windows事件日志,可以通过Windows事件查看器查看该日志,如下图所示:
本文将讨论如何以编程方式将日志记录到Windows事件日志中 。
安装 EventLog中记录数据 。NET Core添加到Windows事件日志中,您可以使用Nuget来安装Microsoft 。Extensions.logging.eventlog包,请使用Visual Studio中的NuGet包管理器可视面板或使用NuGet包管理器控制台命令行界面 。输入以下命令:
Install-Package Microsoft.Extensions.Logging.EventLog通过 EventLog 记录日志要将日志写入Windows事件日志,可以使用以下代码:
EventLog eventLog = new EventLog();eventLog.Source = "MyEventLogTarget";eventLog.WriteEntry("This is a test message.", EventLogEntryType.Information);
通过 EventLog 清空日志要清除空所有windows日志,可以使用以下代码:
EventLog eventLog = new EventLog();eventLog.Source = "MyEventLogSource";eventLog.Clear();清除空所有windows事件日志,那么如何清除某一类日志呢?例如:MyEventLogTarget,修改代码如下:
if (EventLog.Exists("MyEventLogTarget")){EventLog.Delete("MyEventLogTarget");}读取 Windows 事件日志 记录您可以使用foreach迭代条目以获取所有日志记录 。
EventLog eventLog = new EventLog();eventLog.Log = "MyEventLogTarget";foreach (EventLogEntry entry in eventLog.Entries){//Write your custom code here}使用 NLog 将日志记录到 Windows 事件日志 中要使用NLog将日志记录到windows事件日志,您需要安装NLog 。带有NuGet的WindowsEventLog 。这个包封装了连接事件日志的复杂细节,所以你只需要像平常一样操作NLog 。
创建 ILogManager 接口以下接口方法用于记录不同级别的日志(信息、警告、调试或错误)
public interface ILogManager{void LogInformation(string message);void LogWarning(string message);void LogDebug(string message);void LogError(string message);}创建 NLogManager 类接下来,使用以下代码从ILogManager接口派生一个NLogManager类:
public class NLogManager : ILogManager{private static NLog.ILogger logger = LogManager.GetCurrentClassLogger();public void LogDebug(string message){throw new NotImplementedException();}public void LogError(string message){logger.Error(message);}public void LogInformation(string message){throw new NotImplementedException();}public void LogWarning(string message){throw new NotImplementedException();}}使用 LogError 方法为了简单起见,我只实现LogError方法,其他三个方法可以自己实现 。为了了解如何通过NLog将日志记录到Windows事件日志中,请按如下方式修改代码:
public void LogError(string message){Logger logger = LogManager.GetLogger("EventLogTarget");var logEventInfo = new LogEventInfo(LogLevel.Error,logger.Name, message);logger.Log(logEventInfo);}请注意,我在上面创建了一个名为EventLogTarget的EventLog,然后在LogEventInfo的构造函数中传递了日志级别、日志记录器的名称以及要记录的日志信息 。
配置 Nlog 将日志记录到 Windows事件日志 中为了能够配置Nlog以编程方式通过EventLog记录日志,您可以使用以下代码 。
var config = new NLog.Config.LoggingConfiguration();var logEventLog = new NLog.Targets.EventLogTarget("EventLogTarget");config.AddRule(NLog.LogLevel.Info, NLog.LogLevel.Error, logEventLog);NLog.LogManager.Configuration = config;完整的 NLogManager 例子下面是NLogManager的完整代码示例,供大家参考 。
public class NLogManager : ILogManager{private static NLog.ILogger logger =LogManager.GetCurrentClassLogger();public void LogDebug(string message){logger.Debug(message);}public void LogError(string message){Logger logger = LogManager.GetLogger("EventLogTarget");var logEventInfo = new LogEventInfo(LogLevel.Error,logger.Name, message);logger.Log(logEventInfo);}public void LogInformation(string message){logger.Info(message);}public void LogWarning(string message){logger.Warn(message);}}为了能够在控制器中使用NLogManager,还需要在Startup下的ConfigureServices方法中注入它 。代码如下:
services.AddSingleton();当您打开Windows事件查看器时,您将看到错误信息已成功记录在此处 。请参考以下截图:
Windows事件日志通常用于记录系统事件、网络流量以及与安全和性能相关的信息等 。您还可以将应用程序日志记录到Windows事件日志中 。一般来说,如果你的程序只在Windows上运行,那么将应用程序信息记录到Windows事件日志中是一个非常好的选择 。
翻译链接:https://www . infoworld . com/article/3598750/how-to-log-data-to-the-windows-event-log-in-cs harp . html
【事件日志可以删除吗 事件日志】
推荐阅读
- 洗手液可以洗碗吗?洗手液能洗头发吗 洗手液不能洗头发?
- 陈飞宇|“陈飞宇”艳照门事件后续,工作室发声,已委托律师起诉造谣者
- 做什么运动可以减小肚腩 做什么运动减肚子
- 维生素e乳可以长期擦脸吗 能长期吃维生素e吗?
- 圆头剪刀可以带上高铁吗-剪刀可以带上高铁吗
- |300元就可以搞定如此豪华、实用的钓箱?钓友:二手钓箱在哭泣
- 中山市翻译服务公司?中山有哪些翻译公司?可以介绍一下吗?
- 怀孕初期可以吃木瓜吗
- 得禽流感的鸡可以吃吗
- 山药和红薯可以一起煮粥吗
