用asp.net将网页错误信息写入系统日志(2)
body>
<h1>403 error page</h1>
</body>
</html>
设置以上页面以后,最重要的,我们需要设置全局配置文件global.asax,这样错误信息才可以保存到系统日志,我们来看这个文件怎样设置。
<%@ import namespace="system" %>
<%@ import namespace="system.diagnostics" %>
<script language="vb" runat=server>
public sub application_onerror(sender as object, e as eventargs)
'捕捉错误
dim lasterror as exception = server.getlasterror()
dim errmessage as string = lasterror.tostring()
'这里设置日志的名字为“mylog”
dim logname as string = "mylog"
dim message as string = "url " & request.path & " error: " & errmessage
' 如果日志不存在,建立一个
if (not eventlog.sourceexists(logname)) then
eventlog.createeventsource(logname, logname)
end if
dim log as new eventlog
log.source = logname
'以下列出了五中错误
log.writeentry(message, eventlogentrytype.information, 1)
' log.writeentry(message, eventlogentrytype.error, 2)
' log.writeentry(message, eventlogentrytype.warning, 3)
' log.writeentry(message, eventlogentrytype.successaudit, 4)
' log.writeentry(message, eventlogentrytype.failureaudit, 5)
end sub
</script>
在以上设置中,定义了当错误发生的时候,web服务器将首先检查是否存在名为“mylog”的日志,如果不存在,建立一个。然后,将错误信息写入日志并保存。在以上的设置中,我们注意以下几点:(1)以上代码中,我们将日志命名为“mylog”,在实际应用中,我们可以根据自己的要求设置日志名字,比如 “××的网站日志”等,这样不但容易辨别,而且也不会被其他管理员认错为别的内容;(2)以上我们给出的错误页面很简单,就是一个简单语句。在实际网站应用中,我们可以有几个选择,首先,我们可以将所有这些错误页面设置为网站的首页,当页面出错或者页面不存在的时候,直接将用户引导到网站首页,这样不显示错误信息,对用户而言可能浏览感觉较好;另外,也可以设置将错误页面设置比较友好,最好是一般用户都可以理解方式而不是简单的英文提示。
四、查看效果
现在,我们打开“事件查看”来验证是否将事件写入日志。打开“程序”->“管理”->“事件查看器”,选择“mylog”,我们可以看到以下的界面(图一):
在上图中,我们看到了mylog里面有几个事件,打开查看,我们可以看到错误信息确实意见记录下来(图二):
五、总结
以上,我们用完整的举例详细介绍了错误信息写入系统日志的实现方法。这样实现以后,相信对系统管理和网站管理都可以起到很好的帮助作用。同时,在实用asp.net的过程中,我们不得不一次次惊叹它功能的完善,asp.net不但的页面设计、数据库访问、缓存等方面功能和性能大大提高,而且,在与系统的结合、整个环境的管理等方面也进一步完善。所以,对于习惯asp或者php等其他语言编程的用户,在使用asp.net以后,不能只仅仅关注页面实现和数据处理等常规操作,而应该进一步在网站安全、系统管理等方面学习asp.net,真正在网络开发方面达到一个更高的境界。