统计Windows系统日志

这篇具有很好参考价值的文章主要介绍了统计Windows系统日志。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

服务器要求定期巡检,并记录日志发送次数。

代码如下:

  static void Main(string[] args)
    {
            Console.WriteLine("请输入检索的日志月份(如2023-01):");
            var month =  Console.ReadLine();
            new EventWatch(month).OutputSystemLogs();
            Console.ReadLine();
    }

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; 

namespace SystemEventClassLibrary
{
    public class EventWatch
    {
        Stopwatch sw = new Stopwatch();

        readonly DateTime dateFrom = new DateTime();
        readonly   DateTime dateTo = new DateTime();

        Dictionary<long, int> EventResult = new Dictionary<long, int>();//{ { 4624,0}, { 4625, 0 }, { 4719, 0 }, { 4698, 0 }, { 1102, 0 }, };
 
        public EventWatch(string month )
        {
      

            var watchEventID = System.Configuration.ConfigurationManager.AppSettings["EventID"];

            var _eventList = watchEventID.Split(new char[] { ',' });
            foreach ( var _eventID in _eventList ) {

                EventResult.Add( long.Parse( _eventID), 0);
            }

            var fromDay = System.DateTime.Now.ToString("yyyy-MM-01");
            if (!string.IsNullOrEmpty(month))
            {
                if (month.Length == 7)
                {
                    fromDay = string.Format("{0}-01", month);
                }
                else if (month.Length == 6) {
                    fromDay = string.Format("{0}-{1}-01", month.Substring(0,4), month.Substring(4,2));
                }
            }

            dateFrom = DateTime.Parse(fromDay);

            dateTo = dateFrom.AddMonths(1);

        }

        public   void OutputSystemLogs()
        {
            try
            {
                sw.Start();

                var logName = System.Configuration.ConfigurationManager.AppSettings["EventName"];//

                System.Console.WriteLine(string.Format("开始检索{0}日志,{1}~{2},事件ID({3})",
                    logName,
                    dateFrom, dateTo,
                    System.Configuration.ConfigurationManager.AppSettings["EventID"]));

                System.Diagnostics.EventLog eventLogSecurity = new System.Diagnostics.EventLog();

                if (!string.IsNullOrEmpty(logName))
                {
                    eventLogSecurity.Log = logName;
                }


                System.Diagnostics.EventLogEntryCollection collection = eventLogSecurity.Entries;


                int Count = collection.Count;

                if (collection != null && collection.Count > 0)
                {

                    foreach (System.Diagnostics.EventLogEntry entry in collection)
                    {
                        if (DateTime.Compare(entry.TimeGenerated, dateFrom) >= 0 &&
                            DateTime.Compare(entry.TimeGenerated, dateTo) < 0
                            ) 
                        { 
                            if (EventResult.Keys.Count(t => t == entry.InstanceId) > 0)
                            {
                                EventResult[entry.InstanceId]++;
                            }
                        }
                        else
                        {
                            //break;
                        }
                    }
                    
                    OutPut();
                }

            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.Message);

            }
            finally {

                sw.Stop(); 

                System.Console.WriteLine( string.Format("运行结束,耗时:{0} 毫秒", sw.ElapsedMilliseconds.ToString()));

            }

        }

        private   void OutPut()
        {
            string content = string.Format("系统日志巡检周期:{0}至{1}",  dateFrom, dateTo);
            for (int i = 0; i < EventResult.Count; i++)
            {
                var key = EventResult.ElementAt(i).Key;

                var curLing = string.Format("事件ID:{0} 数量:{1}", key, EventResult == null ? 0 : EventResult[key]);
                content += Environment.NewLine + curLing;
                System.Console.WriteLine(curLing);
            }

            string fileName = System.IO.Path.Combine(Environment.CurrentDirectory, System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + "log.txt");
            System.IO.File.WriteAllText(fileName, content);
        }
    }
}
 

运行画面如下:

统计Windows系统日志

exe下载地址:https://download.csdn.net/download/moonshineidolon/87932664文章来源地址https://www.toymoban.com/news/detail-499683.html

到了这里,关于统计Windows系统日志的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++服务器框架02_日志系统02_logger

    sylar/log.h sylar/log.cpp

    2024年02月12日
    浏览(41)
  • C++服务器框架03_日志系统03_appender

    sylar/log.h sylar/log.cpp

    2024年02月13日
    浏览(80)
  • kiwi syslog日志服务器怎么在Windows下搭建,这篇文章好好捋捋,附相关软件下载!

    在昨天的推文中,有朋友留言想要看看kiwi syslog的文章,并且是win系统下,今天安排一下: 下载地址: 1、 下载kiwi_syslog_server,解压后,运行Kiwi_Syslog_Server_9.5.0.setup.exe ,点 I Agree ; 2、默认选项,然后点Next继续 3、默认选项,点击Next 4、(这里的意思好像是 安装网页的日志

    2024年02月05日
    浏览(43)
  • 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!

    经典的ELK架构或现被称为Elastic Stack。Elastic Stack架构为Elasticsearch + Logstash + Kibana + Beats的组合: Beats负责日志的采集 Logstash负责做日志的聚合和处理 ES作为日志的存储和搜索系统 Kibana作为可视化前端展示 整体架构图: 容器化场景中,尤其k8s环境,用户经常使用EFK架构。F代表

    2024年02月07日
    浏览(53)
  • DELL服务器安装Windows server系统(原服务器已有系统)

    说明: 在此文章中: 使用的镜像是windows server2016. 使用的服务器是DELLEMC R740. 原有的系统是Centos。 下载地址如下 https://rufus.ie/downloads/ 百度网盘下载地址: 链接:https://pan.baidu.com/s/1K9o65F8hK05xxsDQZ0k0mw?pwd=nexs  提取码:nexs 官网下载地址如下: Windows Server 2022 | Microsoft Evaluation

    2024年02月06日
    浏览(51)
  • Windows系统服务器配置SSH服务

    打开【设置】-【应用】 选择【管理可选功能】 点击【添加功能】 选择【OpenSSH 服务端】,切记不是【OpenSSH 客户端】,然后点击下载即可 下载完成后会自动安装,安装成功会出现在列表中 找到命令提示符,以管理员身份运行 执行“net start sshd”命令,启动SSH服务 按下【w

    2024年02月13日
    浏览(39)
  • 服务器工作环境要求

    在开展网站服务之前,合适的服务器工作环境是必不可少的。服务器工作环境指需要一定的软硬件条件来保障服务器可以正常地运转和提供高效率的服务。在这篇文章中,我们将会详细讲解服务器工作环境所需的要素。 一、硬件要求 服务器硬件方面包括了基本的电脑构造和

    2024年01月20日
    浏览(37)
  • 服务器(Windows系统)自建filebrowser网盘服务器超详细教程

    需要依赖(工具) 轻量服务器(云服务器)一台 —— 环境Windows Server 2019 filebrowser安装包(https://github.com/filebrowser/filebrowser/releases) 下载安装filebrowser 进入链接下载:https://github.com/filebrowser/filebrowser/releases 下载v2.25.0的Windows 64位版本。 将其解压至出来(博主解压到C盘的

    2024年02月04日
    浏览(52)
  • 阿里云国际版查看云服务器ecs实例系统日志和截图-Unirech

    阿里云国际版云服务器ecs是一个基于云的虚拟化服务,无法接入显示设备或手动截屏,但是云服务器ecs缓存了最后一次启动、重启或关闭时的系统日志,并支持实时捕获实例屏幕截图。用户则可以使用这些功能来分析和排除实例故障,例如诊断无响应的操作系统、异常重启或

    2024年02月09日
    浏览(54)
  • Windows server 2012 R2系统服务器远程桌面服务激活服务器RD授权分享

    上期我分享了Windows server 2012 R2系统服务器远程桌面服务的安装教程,若是没有激活服务器获得RD授权只有120天的有效期,到期需要重新安装,这期飞飞和你分享Windows server 2012R2系统服务器远程桌面服务激活服务器RD授权的方法,希望可以帮助到你~ 1、在仪表板中单击【远程桌

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包