系统日志可以帮助我们分析操作系统的安全与否,也可以帮助我们将一些不好调试的信息显示出来。

C#操作系统日志主要是通过EventLog类来实现的。

一 图解

打开事件查看器,其中与EventLog类对应的元素可以在下图

二 写日志

设置EventLog的Log属性就可以将日志分到不同的类别中。

System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog("LogName")或者

EventLog e = new EventLog();
     e.Log = "LogName";

这两个语句都可以在列表中添加一个名称为LogName的日志。

日志级别对应着EventLogEntryType枚举。

日志的源表示此条记录是从哪个地方来的,一般将日志的源设置成自己的程序名称就可以了。

EventLog.CreateEventSource("eventLogSource", "LogName");

上面的语句可以新建一个日志源,但是只有在真正插入日志记录之前,日志的源才会创建。

eventLog.WriteEntry("日志信息!",EventLogEntryType.Error);    可以插入一条日志记录,有几种重载,可以查看相应的帮助文档。

三 读日志

读日志记录主要是通过获取EventLog实例的Entries属性来实现的。

         string[] logTypes = new string[] { "Application", "Security", "System" };

            foreach (string t in logTypes)
{
EventLog e = new EventLog();
e.Log = t;
foreach (EventLogEntry l in e.Entries)
{
if (l.EntryType == EventLogEntryType.Error)
{
Console.WriteLine(l.Message);
}
}
}

    读取系统日志的记录以后可以通过自定义的规则进行日志分析。

四 附加

日志文件在计算机攻防中是很重要的一部分,可以通过修改日志文件的默认目录,修改日志文件的操作权限来防止日志文件的清除行为。

C#操作系统日志的更多相关文章

  1. Windows2008R2操作系统日志清理

    Windows日志路径 c:/windows/system32/winevt/logs

  2. 轻松背后的N+疲惫——系统日志

    相信很多coder都有这样的癖好:“自恋”!!对自己编写的code总是那么的自信,自豪,Always believe it to be so perfect!! 不喜欢做单元测试(总觉得它就那样了能出 ...

  3. oracle 10g操作和维护手册

    1.    检查数据库基本状况... 1.1.     检查Oracle实例状态... 1.2.     检查Oracle服务进程... 1.3.     检查Oracle监听状态... 2.    ...

  4. MongoDB基础

    1.概念及特点 说明:由于部分语句中$ 符号无法正常显示,使用¥代表 概念 MongoDB是一个基于文档的分布式的开源的NoSQL数据库,文档的结构为BSON形式,每一个文档都有一个唯一的Object ...

  5. Java程序日志:java.util.logging.Logger类

    一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...

  6. 慎重管理SQL Server服务的登录(启动)账户和密码

    今天是大年初三,先跟大家拜个年,祝大家新年快乐.今天处理了一个alwaysOn问题——辅助副本因为磁盘空间不足一直显示[未同步——可疑],在日志中可以看到数据库处于挂起状态,与主副本失去同步.原以为只 ...

  7. Oracle_12c_RAC_service_died问题分析处理

    接上篇,通过分析listener日志发现rac1数据库无法连接时出现了listener_20160628.log:28-JUN-2016 07:55:47 * service_died * LsnrA ...

  8. HBase工程师线上工作经验总结----HBase常见问题及分析

    阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...

  9. 每天checklist所用到的T-CODE

    1.1重点检查 作业 事务码 检查过程 检查R/3系统是否已经启动 · 登录到R/3系统 检查每日备份是否正常 DB12-Backup Logs:Overview · 检查数据库备份 · 检查数据库备 ...

随机推荐

  1. EF——一个实体对应两张表,两个实体对应一张表 06 (转)

    本篇日记我们将详细探讨如何将表现领域的类映射到现有的数据库.现在的经济形势不是太好,很多公司都取消了开发新系统的预算.在这种情况下,通常的做法是把原有的几个系统修改一下做个集成,先凑合用着得了.如果要 ...

  2. iOS部分其他知识

    1.界面切换传值 (1)使用button进行界面切换 //当页面跳转时系统自动调用,segue连线 - (void)prepareForSegue:(UIStoryboardSegue *)segue ...

  3. 51nod-1686 第K大区间(二分+尺取法)

    题目链接: 第K大区间 基准时间限制:1 秒 空间限制:131072 KB    定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. Input 第一行两个数 ...

  4. flv视频播放器代码

    <div class="txt1"> <script type="text/javascript"> var swf_width=307 ...

  5. Js基础知识-入门

    创建脚本块 <script language=”JavaScript”> JavaScript code goes here </script> 隐藏脚本代码 <scri ...

  6. asp.net mvc @RenderBody()的问题

    在使用.net mvc 母版页布局时如果是进行上中下三块布局的话,那么就会像下面的图那样: 在上面的div 和下面的div之间会出现4cm的间隔, 解决如下: 给包裹@RenderBody()的div ...

  7. 【转】用java实例学习MVC模式

    .1 MVC模式 MVC是三个单词的缩写,这三个单词分别为:模型(Model).视图(View)和控制(Controller).MVC模式的目的就是实现Web系统的职能分工.下面以J2EE开发进行介绍 ...

  8. PAT1028—— 人口普查

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月 ...

  9. 一场ACM一场梦——我的一年

    听着裁判倒计时比赛结束,看着全场鲜艳的气球,今天的结果是the last result i can image. 过几天给校赛出题,去年此时的我,还从来没有过竞赛的经验,只因为在大学开学前看了一点点c ...

  10. hive操作语句使用详解

    #创建表人信息表  person(String name,int age) hive> create table person(name STRING,age INT)ROW FORMAT DE ...