统计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);
}
}
}
运行画面如下:
exe下载地址:https://download.csdn.net/download/moonshineidolon/87932664
统计Windows系统日志相关推荐
- Windows系统日志
目录 Windows系统日志 简介 分类 按照审核对象分类 查看系统日志方式 通过C盘路径查找 通过win+r,输入eventvwr.msc进入事件查看器 事件类型 事件ID 日志保存格式 登录类型 ...
- C#写Windows系统日志(EventLog)
.NET framework 2.0开始,可以使用 EventLog构造函数在Windows系统日志里添加内容,一切看上去是如此的简单.只是-- 会涉及到一点点的权限问题,必须要注意一下. 使用 Ev ...
- 《ELK Stack权威指南(第2版)》一3.5 Windows系统日志
本节书摘来自华章出版社<ELK Stack权威指南(第2版)>一书中的第3章,第3.5节,作者 饶琛琳 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.5 ...
- windows系统日志查询
系统日志是用于记录系统中硬件.软件和系统问题.监视系统中发生事件的信息.分为系统日志.应用程序日志和安全日志.用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹. Windows系 ...
- win7产生大量evtx文件_闲聊Windows系统日志
原标题:闲聊Windows系统日志 * 本文作者:TomKing,本文属FreeBuf原创奖励计划,未经许可禁止转载 前言 最近遇到不少应急都提出一个需求,能不能溯源啊?这个事还真不好干,你把证据,犯 ...
- Windows系统日志收集
方案 采用nxlog+fluentd+elasticsearch组件.nxlog 是用 C 语言写的一个跨平台日志收集处理软件,其内部支持使用 Perl 正则和语法来进行数据结构化和逻辑判断操作.nx ...
- java输出windows系统日志_闲聊Windows系统日志
title: "闲聊Windows系统日志" date: 2021-02-22T18:59:49+08:00 draft: true tags: ['windows'] autho ...
- Event Viewer 查看 Windows 系统日志
打开 Event Viewer 开始菜单搜索"Event Viewer", 打开 Event Viewer, 左边栏的树形图找到"Application and Serv ...
- Windows系统日志文件分析
日志文件,它记录着Windows系统及其各种服务运行的每个细节,对增强Windows的稳定和安全性,起着非常重要的作用.但许多用户不注意对它保护,一些"不速之客"很轻易就将日志文件 ...
最新文章
- 开放下载!《阿里云存储白皮书》全面解读阿里云存储二十年的技术演进
- “后见之明”是冰冷刻薄的讥讽;这是一种病,得治。
- python代码怎么变成软件_Python变成技术
- 如何低格台式计算机的硬盘,最新[电脑如何格式化]台式机如何格式化本地磁盘.doc...
- Servlet打印HTML页面乱码问题
- LOW_VALUE、HIGH_VALUE、ENDPOINT_VALUE转换--UTL_RAW、DBMS_STATS.CONVERT_RAW_VALUE
- 总结——达内视频(三)
- 什么软件测试电脑分辨率,分辨率测试卡
- 【捡肥皂】,sql挂起清除工具 MS SQL2000挂起工具,无毒绿色,MSSQL手动清除挂起方法
- Linux三剑客之SED
- win10显示rpc服务器不可用,win10系统RpC服务器不可用的详细办法
- 服务器iscsi如何修复,服务器重启后,iSCSI目标卡住了重新连接
- 腾讯bugly热更新接入
- Gradle sync failed: No variants found for ':app'. Check build files to ensure at least one varian...
- 《2015互联网安全年报》,移动端成重灾区,黑灰产日益成熟
- excel 作图-- 主次纵坐标轴 横坐标名称太长
- 已解决(Python爬虫requests库报错 请求异常SSL错误,证书认证失败问题)requests.exceptions.SSLError: HTTPSConnectionPool
- Matlab中mesh和surf的区别
- 高晓松50岁生日感言:可感恩的很多,可原谅的很少
- 一名果黑的Mac装机必备