事件日志(事件日志可以删除吗)
事件日志(事件日志可以删除吗)
每当出现一些未捕获异常时,操作系统都会将异常信息写入到Windows 事件日志中,可以通过Windows 事件查看器查看,如下图:
这篇文章将会讨论如何使用编程的方式将日志记录到 Windows 事件日志 中。安装 EventLog
要想在 .NET Core 中记录数据到 Windows 事件日志中,可以用 Nuget 安装一下
Microsoft.Extensions.Logging.EventLog包,用 Visual Studio 中的NuGet Package Manager可视化面板 或者 使用NuGet Package Manager Console命令行界面都可以,输入命令如下:Install-PackageMicrosoft.Extensions.Logging.EventLog通过 EventLog 记录日志
要想将日志写入 Windows 事件日志中,可以使用如下代码:EventLogeventLog=newEventLog(); eventLog.Source="MyEventLogTarget"; eventLog.WriteEntry("Thisisatestmessage.",EventLogEntryType.Information);
通过 EventLog 清空日志
为了能够实现清空所有 windows 日志,可以使用如下代码:EventLogeventLog=newEventLog(); eventLog.Source="MyEventLogSource"; eventLog.Clear();
Clear 是清空所有的 windows 事件日志,那如何清除某一个类别的日志呢? 比如说:MyEventLogTarget,修改代码如下:if(EventLog.Exists("MyEventLogTarget")) {EventLog.Delete("MyEventLogTarget"); }读取 Windows 事件日志 记录
可以使用 foreach 迭代 Entries 来获取所有的日志记录。EventLogeventLog=newEventLog(); eventLog.Log="MyEventLogTarget";foreach(EventLogEntryentryineventLog.Entries) { //Writeyourcustomcodehere}使用 NLog 将日志记录到 Windows 事件日志 中
要想使用 NLog 将日志记录到 windows事件日志 中,你需要用 NuGet 安装一下NLog.WindowsEventLog,这个包封装了连接 EventLog 错综复杂的细节,所以你只需要像平时用 NLog 一样的操作即可。创建 ILogManager 接口
下面的接口方法用于记录不同级别的日志 (information, warning, debug, or error) publicinterfaceILogManager {voidLogInformation(stringmessage);voidLogWarning(stringmessage);voidLogDebug(stringmessage);voidLogError(stringmessage); }创建 NLogManager 类
接下来,从 ILogManager 接口上派生一个 NLogManager 类,代码如下: publicclassNLogManager:ILogManager {privatestaticNLog.ILoggerlogger=LogManager.GetCurrentClassLogger();publicvoidLogDebug(stringmessage) {thrownewNotImplementedException(); }publicvoidLogError(stringmessage) { logger.Error(message); }publicvoidLogInformation(stringmessage) {thrownewNotImplementedException(); }publicvoidLogWarning(stringmessage) {thrownewNotImplementedException(); } }使用 LogError 方法
为了简单起见,我就仅实现 LogError 方法,其他的三个方法大家可以自行实现,为了能够了解如何通过 NLog 记录日志到 Windows事件日志 中,修改代码如下: publicvoidLogError(stringmessage) { Loggerlogger=LogManager.GetLogger("EventLogTarget");varlogEventInfo=newLogEventInfo(LogLevel.Error,logger.Name,message); logger.Log(logEventInfo); }
请注意,上面我创建了一个名为EventLogTarget的 EventLog,然后在 LogEventInfo 的构造函数中传递 log级别,logger的名字 以及 需要记录的 log 信息。配置 Nlog 将日志记录到 Windows事件日志 中
为了能够配置 Nlog 以编程的方式 通过 EventLog 记录日志,可以使用如下代码。varconfig=newNLog.Config.LoggingConfiguration();varlogEventLog=newNLog.Targets.EventLogTarget("EventLogTarget"); config.AddRule(NLog.LogLevel.Info,NLog.LogLevel.Error,logEventLog); NLog.LogManager.Configuration=config;完整的 NLogManager 例子
以下是 NLogManager 的完整代码实例,可供大家参考。 publicclassNLogManager:ILogManager {privatestaticNLog.ILoggerlogger=LogManager.GetCurrentClassLogger();publicvoidLogDebug(stringmessage) { logger.Debug(message); }publicvoidLogError(stringmessage) { Loggerlogger=LogManager.GetLogger("EventLogTarget");varlogEventInfo=newLogEventInfo(LogLevel.Error,logger.Name,message); logger.Log(logEventInfo); }publicvoidLogInformation(stringmessage) { logger.Info(message); }publicvoidLogWarning(stringmessage) { logger.Warn(message); } }
为了能够在 Controller 中使用 NLogManager,还需要在 Startup 下的 ConfigureServices 方法中进行注入,代码如下:services.AddSingleton<ILogManager,NLogManager>();
当你打开 Windows 事件查看器,就会看到错误信息已成功记录到这里了,参考如下截图:
Windows事件日志 通常用于记录 系统事件,网络流量和诸如安全,性能相关的信息 等等,你也可以将应用程序的日志记录到 Windows事件日志中,通常来说,如果你的程序仅仅是跑在 windows 上,那么将应用程序信息记录到 Windows事件日志 中是一个非常不错的选择。
译文链接:
https://www.infoworld.com/article/3598750/how-to-log-data-to-the-windows-event-log-in-csharp.html
潮剧苏六娘(经典潮剧100部)潮剧苏六娘(经典潮剧100部)南方日报20210427094936姚璇秋扫窗会演出剧照资料图片姚璇秋江姐演出剧照资料图片姚璇秋春草闯堂演出剧照资料图片编者按2021年4月,中国戏曲
潮剧彩楼记(彩楼记潮剧第六场)潮剧彩楼记(彩楼记潮剧第六场)全国党媒信息公共平台20210421152726来源烟台日报大小新闻大小新闻客户端4月21日讯(YMG全媒体记者唐寿锐通讯员王爱华唐晓妮摄影报道)一代
福彩3d独胆王(大哥每天就2个胆)福彩3d独胆王(大哥每天就2个胆)旺彩预测20210512103441蓝色妖姬蓝色红色号码,在我手掌之间!独胆3双胆0,3三胆0,3,9五码0,3,6,7,9七码0,2,3,5,6
清明随感(清明节发朋友圈的说说)清明随感(清明节发朋友圈的说说)荧荧明火虫20210510065123不一样的母亲节文逆风飞扬清明时节雨纷飞,路上行人欲断魂,一首清明传诵古今,道不尽人们心底的哀思。清明的雨也似乎
数码知识苹果怎么设置第一屏幕苹果设置第一屏幕教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道苹果怎么设置第一屏
数码知识oppok7如何截图截屏教程如今使用IT数码设备的小伙伴们是越来越多了,那么IT数码设备当中是有很多小技巧的,这些技巧很多小伙伴一般都是不知道如何来实用的,就好比最近就有很多小伙伴们想要知道oppok7如何截
以一当百成就(潘达利亚隐藏宝藏)以一当百成就(潘达利亚隐藏宝藏)还记得那个曾3分钟对出49轮带月诗词的最强飞花令少女贺莉然吗?最近她又放大招!13岁的她在节目中以一敌百,5分钟对出了127句带花字的诗词!就问你服
年轻十岁(年轻时尚发型女)年轻十岁(年轻时尚发型女)全新一代的丰田汉兰达已经陆续到店,大致的外观及细节相信大家看了不少,而目前新款上市或许将全系搭载混动,意味着2。0T的旧款或将成绝版,并且或许将不必再加价
闺蜜网晚九点(闺蜜晚上去哪)闺蜜网晚九点(闺蜜晚上去哪)油性皮肤的MM到了夏天总会究竟面霜的选择,因为这件事一旦误入歧途很可能会让皮肤油腻加重,爆痘也是分分钟的事了。晚九点蜜友对此很有心得,所以特来和大家分享
秋苹造型(苹果2)秋苹造型(苹果2)山东省公安厅派驻梁山县韩岗镇彭庄村第一书记王秋苹驻村两年来,村居环境大变样,村集体有了稳定的收入。村里的道路顺畅了,崭新的路灯把村里照亮了,也把村民的心照得越来越
吞天换日(吞天食地系统)吞天换日(吞天食地系统)咦,看来你这女娃,与宁无敌关系匪浅,本妖王刚破禁制,看在你们帮助本妖王破解禁制的份上,本妖王就抓你这个女娃子。那股妖风之力更甚。看见宁三年被妖风缠住,苏天心