7.2 记录异常
在程序中会经常遇到异常情况,这些异常在前面的章节中已做介绍。下面介绍在实际编程当中,对于这些异常情况的具体处理方式,其中,最主要的方式是将这些异常的信息记录下来,在程序运行一段时间后查看这些日志。或者在程序出现问题时查看这些日志,了解程序运行的具体情况和出现异常的情况,尤其是当程序出现了结构层次比较深的逻辑错误时,这些记录的异常信息至关重要,这些异常信息可以记录在文本中,也可以记录在系统事件的日志中。
7.2.1 查看Windows事件日志
异常信息记录在系统日志中是编译器为开发人员提供的一个方便条件。可以使用最简单的代码完成日志的记录作业。记录在系统事件中的日志还有另外的一个好处是稳定,系统可以为程序提供自定义日志信息的保存除非是系统崩溃或清除,这些日志将始终保留在系统中。在操作系统中可以打开系统日志查看,也可以通过编程方式打开查看。
打开方法是打开控制面板中的管理工具,然后打开其中的事件查看器。选择左侧Windows日志下的应用程序,此日志为系统下的应用程序日志,程序在不填写日志源的情况下默认加入到此日志项目下。自定义日志存储在应用程序和服务日志节点下,名称或节点可以自定义。在视图中间部分将显示日志的所有信息,包括级别、时间、来源、事件编号等。具体显示界面如图7-8所示。
图7-8 Windows事件查看器
通过编程的方式查看Windows日志,代码如下。
上面代码执行效果如图7-9所示。
图7-9 编程方式查看日志效果
7.2.2 写入事件日志
在微软的编译器中提供了一个操作系统日志的类。System.Diagnostics.EventLog类为编程提供了日志操作的主要方法,如表7-2所示。
表7-2 System.Diagnostics.EventLog类
表7-2列举了日志类的一些操作的方法和事件,具体的操作代码如下。
执行效果如图7-10所示。在系统中查看写入的日志效果如图7-11所示。
图7-10 写入日志结果
图7-11 系统查看写入的日志
7.2.3 自定义日志
在程序开发和使用中,每个程序的日志信息都需要保存在自己的日志节点下面,这就需要一个自定义的日志信息,下面通过代码添加自定义日志信息,代码如下。
在上述代码中,首先判断节点是否存在,如果不存在,首先创建节点,然后向节点中添加程序的错误信息,这样程序产生的异常将随系统日志同时存在,可以方便以后的程序调试与修改。日志添加后的效果如图7-12所示。
图7-12 添加自定义日志信息
7.2.4 编程查看事件日志
日志信息添加完成,需要时可以通过编程方式来查看信息,便于后期程序修改和调试,尤其是在产品开发当中,日志显得尤为重要,下面通过代码方式获得日志信息,代码如下。
上述代码中,首先获得开发人员自定义的日志对象,然后循环输出对象中的信息,结果如图7-13所示。
图7-13 日志信息输出