100165812.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 590 行 · 第 1/3 页
HTM
590 行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
32.6.2 事件日志
</title></head>
<body>
<div class="area">
<div class="col1">
<div class="lineBlue">
</div>
<!-- title -->
<div class="arcTitle">
<h1>
<a href="../16">
C#高级编程(第3版)【全文连载】
</a>
</h1>
<div style="text-align: center; font-size: 15px">
<a href="100165812.htm">
32.6.2 事件日志
</a>
</div>
<div style="text-align: center; font-size: 15px">
<a class="url" href="../../default.htm">http://book.csdn.net/</a>
2006-10-13 14:41:00
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165812.htm'><font color='red'>32.6.2 事件日志</font></a></h1>
<div id="divRelateNode" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165809.htm'>32.5.5 ServiceController类</a></div><div style='float:right;width:49%'>·<a href='100165810.htm'>32.6 故障排除</a></div><div style='float:left;width:49%'>·<a href='100165811.htm'>32.6.1 交互式服务</a></div><div style='float:right;width:49%'>·<a href='100165813.htm'>32.6.3 性能监视</a></div><div style='float:left;width:49%'>·<a href='100165814.htm'>32.7 电源事件</a></div><div style='float:right;width:49%'>·<a href='100165815.htm'>32.8 小结</a></div></div>
</div>
</div>
</div>
<!-- main -->
<div id="main">
<div id="text"> <link href="css.css" rel="stylesheet" type="text/css" /><h3 style='margin-top:8.15pt;margin-right:0cm;FTEL:8.15pt;margin-left:
0cm'><a FTEL="_Toc507815591"><span lang=EN-US>32.6.2 </span></a><span
style='font-family:黑体'>事件日志</span></h3>
<p class=MsoNormal><span style='font-family:宋体'>把事件添加到事件日志中,服务可以报告错误和其他信息。当</span><span
lang=EN-US>AutoLog</span><span style='font-family:宋体'>属性设置为</span><span
lang=EN-US>true</span><span style='font-family:宋体;letter-spacing:-.2pt'>时,从</span><span
lang=EN-US style='letter-spacing:-.2pt'>ServiceBase</span><span
style='font-family:宋体;letter-spacing:-.2pt'>中派生出来的服务类可以自动地把事件写入到日志中。</span><span
lang=EN-US style='letter-spacing:-.2pt'>ServiceBase</span><span
style='font-family:宋体;letter-spacing:-.2pt'>类检查</span><span lang=EN-US>AutoLog</span><span
style='font-family:宋体'>属性,并且在启动、停止、暂停和继续请求时编写日志条目。</span></p>
<p class=MsoNormal><span style='font-family:宋体'>本节讨论如下内容:</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋体'>事件日志的体系结构</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US
style='color:black'>●<span style='font:7.0pt "Times New Roman"'>
</span></span><span lang=EN-US style='color:black'>System.Diagnostics</span><span
style='font-family:宋体;color:black'>命名空间中用于事件日志的类</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US
style='color:black'>●<span style='font:7.0pt "Times New Roman"'>
</span></span><span style='font-family:宋体;color:black'>给服务和其他应用程序类型添加事件日志</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋体;color:black'>用</span><span lang=EN-US style='color:black'>EventLog</span><span
style='font-family:宋体;color:black'>类的</span><span lang=EN-US style='color:black'>EnableRaisingEvents</span><span
style='font-family:宋体;color:black'>属性创建事件日志的监听器</span></p>
<p class=MsoNormal><span style='font-family:宋体'>图</span><span lang=EN-US>32-21</span><span
style='font-family:宋体'>是服务中的日志条目实例。</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>对于定制的事件日志,可以使用</span><span
lang=EN-US style='color:black'>System.Diagnostics</span><span style='font-family:
宋体;color:black'>命名空间中的类。</span></p>
<p align=center><span lang=EN-US><img width=282 height=308
src="32/image022.jpg"></span></p>
<p align=center style='FTEL:8.15pt'><span style='font-family:宋体;color:black'>图</span><span
lang=EN-US style='color:black'> 32-21</span></p>
<h4 style='FTEL:21.45pt'><span lang=EN-US>1. </span><span
style='font-family:黑体'>事件日志体系结构</span></h4>
<p class=MsoNormal><span style='font-family:宋体'>默认状态下,</span><span lang=EN-US>Event
Log</span><span style='font-family:宋体'>保存在</span><span lang=EN-US>3</span><span
style='font-family:宋体'>个日志文件中:即</span><span lang=EN-US>Application</span><span
style='font-family:宋体'>、</span><span lang=EN-US>Security</span><span
style='font-family:宋体'>和</span><span lang=EN-US>System</span><span
style='font-family:宋体'>。查看事件日志服务的注册表配置,根据指向具体文件的配置,可以在</span><span lang=EN-US>HKLM_LOCAL_MACHINE\
System\CurrentControlSet\Services\EventLog</span><span style='font-family:宋体'>目录下看到</span><span
lang=EN-US>3</span><span style='font-family:宋体'>个日志。</span><span lang=EN-US>System</span><span
style='font-family:宋体'>日志文件是在系统和设备驱动程序中使用的,应用程序和服务写到</span><span lang=EN-US>Application
</span><span style='font-family:宋体'>日志中。</span><span lang=EN-US>Security</span><span
style='font-family:宋体'>是应用程序的只读日志,操作系统的审计特性使用</span><span lang=EN-US>Security</span><span
style='font-family:宋体'>日志。</span></p>
<p class=MsoNormal><span style='font-family:宋体;color:black'>使用</span><span
lang=EN-US style='color:black'>Event Viewer</span><span style='font-family:
宋体;color:black'>管理工具可以读取这些事件。从</span><span lang=EN-US style='color:black'>Visual
Studio .NET</span><span style='font-family:宋体;color:black'>的</span><span
lang=EN-US style='color:black'>Server Explorer</span><span style='font-family:
宋体;color:black'>中右击</span><span lang=EN-US style='color:black'>Event Logs</span><span
style='font-family:宋体;color:black'>,从上下文菜单中选择</span><span lang=EN-US
style='color:black'>Launch Event Viewer</span><span style='font-family:宋体;
color:black'>,可以直接启动</span><span lang=EN-US style='color:black'>Event Viewer</span><span
style='font-family:宋体;color:black'>,其窗口如图</span><span lang=EN-US
style='color:black'>32-22</span><span style='font-family:宋体;color:black'>所示。</span></p>
<p class=MsoBlockText style='margin-left:0cm;FTEL:22.25pt'><span
style='font-size:10.5pt;font-family:宋体;color:black;font-style:normal'>在</span><span
lang=EN-US style='font-size:10.5pt;color:black;font-style:normal'>EventLog</span><span
style='font-size:10.5pt;font-family:宋体;color:black;font-style:normal'>中,可以看到以下信息:</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋体'>类型可以是</span><span lang=EN-US>Information</span><span
style='font-family:宋体'>、</span><span lang=EN-US>Warning</span><span
style='font-family:宋体'>和</span><span lang=EN-US>Error</span><span
style='font-family:宋体'>。</span><span lang=EN-US>Information</span><span
style='font-family:宋体'>是罕见的成功操作;</span><span lang=EN-US>Warning</span><span
style='font-family:宋体'>是当前并不重要的问题;</span><span lang=EN-US>Error</span><span
style='font-family:宋体'>是主要的问题。除此之外,还有</span><span lang=EN-US>FariureAudit</span><span
style='font-family:宋体'>和</span><span lang=EN-US>SuccessAudit</span><span
style='font-family:宋体'>两种类型,但是,这两种类型只用于</span><span lang=EN-US>Security</span><span
style='font-family:宋体'>日志。</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US>Date</span><span style='font-family:宋体'>和</span><span lang=EN-US>Time</span><span
style='font-family:宋体'>显示事件发生的时间。</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US>Source</span><span style='font-family:宋体'>指的是把事件记入日志的软件名称。</span><span
lang=EN-US>Application</span><span style='font-family:宋体'>日志的源是在</span><span
lang=EN-US>HKLM_LOCAL_ MACHINE\System\CurrentControlSet\Services\EventLog\Application\[ApplicationName]</span><span
style='font-family:宋体'>下配置的。在这个项下面,</span><span lang=EN-US>EventMessageFile</span><span
style='font-family:宋体'>的值配置为指向有错误消息的资源</span><span lang=EN-US>DLL</span><span
style='font-family:宋体'>。</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋体'>可以定义</span><span lang=EN-US>Category</span><span
style='font-family:宋体'>,以便在使用</span><span lang=EN-US>Event View</span><span
style='font-family:宋体'>时过滤事件日志,事件源能够定义种类。</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US>Event</span><span style='font-family:宋体'>标识符指定某一具体的事件消息。</span></p>
<p align=center><span lang=EN-US><img width=433 height=318
src="32/image023.jpg"></span></p>
<p align=center style='FTEL:8.15pt'><span style='font-family:宋体;color:black'>图</span><span
lang=EN-US style='color:black'> 32-22</span></p>
<h4 style='FTEL:21.45pt'><span lang=EN-US>2. </span><span
style='font-family:黑体'>事件日志类</span></h4>
<p class=MsoNormal><span lang=EN-US style='color:black'>System.Diagnostics</span><span
style='font-family:宋体;color:black'>命名空间中包含一些事件日志类:</span></p>
<p class=1 style='margin-left:37.55pt;FTEL:-16.1pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US>EventLog</span><span style='font-family:宋体'>类:使用这个类,可以读写事件日志中的条目,并把应用程序建立为事件源。</span></p>
<p class=1 style='margin-left:37.85pt;FTEL:-16.4pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US style='letter-spacing:.1pt'>EventLogEntry</span><span
style='font-family:宋体;letter-spacing:.1pt'>是事件日志中的单个条目。使用</span><span
lang=EN-US style='letter-spacing:.1pt'>EventLogEntryCollection</span><span
style='font-family:宋体;letter-spacing:.1pt'>,可以遍历所有的</span><span lang=EN-US>EventLogEntry</span><span
style='font-family:宋体'>。</span></p>
<p class=1 style='margin-left:37.85pt;FTEL:-16.4pt'><span lang=EN-US>●<span
style='font:7.0pt "Times New Roman"'> </span></span><span
lang=EN-US style='letter-spacing:.1pt'>EventLogInstaller</span><span
style='font-family:宋体;letter-spacing:.1pt'>类是</span><span lang=EN-US
style='letter-spacing:.1pt'>EventLog</span><span style='font-family:宋体;
letter-spacing:.1pt'>组件的安装程序。</span><span lang=EN-US style='letter-spacing:
.1pt'>EventLogInstaller</span><span style='font-family:宋体;letter-spacing:.1pt'>调用</span><span
lang=EN-US style='letter-spacing:.1pt'>EventLog. Create</span><span lang=EN-US>EventSource()</span><span
style='font-family:宋体'>创建事件源。</span></p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?