易用的开源日志记录程序及其 .NET不用IIS实现预览站点工具
原文发布时间为:2011-02-28 —— 来源于本人的百度文章 [由搬家工具导入]
http://code.google.com/p/elmah/
(不需要改动任何的程序)、简单的配置(几行配置)、多种记录方式(数据库、文件、Email)、支持多数据库(Access、SqlServer、Oracle、Sqlite、VistaDB),而且查看结果也不需要编写(并且支持rss发布查看)。
ELMAH最新版本是ELMAH-1.0-BETA3,他是基于HttpModules、HttpHandlers的处理方式,只是记录错误日志不进行处理,不过这已经足够了,我们对于可能发生的异常地方肯定就会做处理的,对于意想不到的异常交给ELMAH就可以了,我们只需给用户提供一个友好的错误页面就可以了。
他的用法非常简单,简单的让人无法相信,下面详细介绍他的用法。
一、下载组件 最新组件点击这里下载ELMAH-1.0-BETA3,把bin文件加的Elmah.dll加入到项目中(他支持net-1.0、 1.1、2.0、3.5)。
二、把db文件夹下的sql脚本执行一下,我们这里选择SQLServer.sql,在你的数据库中会生成一个ELMAH_Error表。
三、配置webconfig 在<configuration>中加入:
<configSections>
<sectionGroup name="elmah">
<!-- 提示! ASP.NET1.x把requirePermission="false"去掉 -->
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/>
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
<elmah>
<security allowRemoteAccess="0" /><!--是否允许远程访问。0代表否、1代表是-->
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="E:\LogHaHa\" /><!--记录到文件-->
</elmah>
四、在<system.web>中加入
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</httpHandlers>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
</httpModules>
ok大功告成了!简单吧。这样我们就可以查看异常了,我们在程序中制造一个异常,然后输入http://localhost/elmah.axd(根目录下加上elmah.axd就可以了),也可以在webconfig加入对此页面的权限控制,详细的做法请参考链接资料。
效果图如下:

点击Details后的详细页面:

以rss方式查看:

我们主要介绍下<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="E:\LogHaHa\" />参数。这里是把日志记录到文件形式。
下面是详细介绍记录到不同地方的参数配置
1)把日志记录到SQL Server 2000 or 2005
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="此处为connectionString的name" /> 适应ASP.NET2.0
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionString="Data Source=.;Initial Catalog=ELMAH;Trusted_Connection=True" /> 适应ASP.NET1.x
2) 把日志记录到SQLite 适应ASP.NET2.0 1.x不支持
<errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="..." />
字符串格式如下:
<connectionStrings>
<add name="..." connectionString="data source=data source=C:\Elmah.db或~/App_Data/Error.db" />
</connectionStrings>
3)把日志记录到XML
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="E:\LogHaHa\" />
4)把日志记录到Oracle
<errorLog type="Elmah.OracleErrorLog, Elmah" schemaOwner="xxx" />
connectionStringName="..." />适应ASP.NET2.0
<errorLog type="Elmah.OracleErrorLog, Elmah" 适应ASP.NET1.x
schemaOwner="xxx" />
connectionString="Data Source=xxxx;User ID=username;Password=password" />
5)把日志记录到Access
<errorLog type="Elmah.AccessErrorLog, Elmah" connectionStringName="..." />适应ASP.NET2.0
<errorLog type="Elmah.AccessErrorLog, Elmah" 适应ASP.NET1.x
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Elmah.mdb" />
6)把日志记录到VistaDB
<errorLog type="Elmah.VistaDBErrorLog, Elmah"
connectionStringName="..." />
字符串格式:
<connectionStrings>
<add name="..." connectionString="Data Source='E:\Elmah.vdb3';Open Mode=NonExclusiveReadWrite;Pooling=True" providerName="VistaDB.Provider" />
</connectionStrings>
7)通过电子邮件
通过电子邮件发送错误报告。请注意,只有From和To属性是必需的。其余的都是可选的,并可能会被删除。如果服务器不要求身份验证,您必须删除的用户名和密码属性或设置为空值(导致零长度字符串) 。如果您使用 NET Framework 1.x,那么到属性可能包含多个收件人地址,每个必须划定的分号( ; ) 。如果您使用的是NET Framework 2.0或更高版本,然后到属性可能包含多个收件人地址,每个必须划定逗号( , ) 。
<errorMail
from=""
to=""
subject="..."
async="true|false"
smtpPort="25"
smtpServer="smtp.example.com"
userName="johndoe"
password="secret" />
另外介绍下载文件夹里面的一个小工具,tools\Cassini下的Cassini.exe,他是一个虚拟的iis服务器,可以实现多个站点运行,在xp下非常有用,虽然在xp下我们可以用IISAdmin实现多个站点运行,不过一次只能运行一个网站,这个小工具可以实现任意个站点的同时运行,我们打开文件后在Application Directory选择你的程序所在的目录,Server Port中填上一个现在的iis没有使用的端口号,然后点击start就可以查看网站了。
PS:相比log4net个人比较喜欢这个,当然还有很多功能没有介绍,希望大家参考资料自己学习,也欢迎大家共同讨论。
易用的开源日志记录程序及其 .NET不用IIS实现预览站点工具的更多相关文章
- log4net--不可多得的开源日志记录组件
log4net--不可多得的开源日志记录组件 1 前奏 一直在用log4net日志工具,却没时间写个日志给大家分享一下这个工具,趁最近比较空些,好好分享一下这个工具. 2 说明 Log4net介绍就不 ...
- 小程序实现图片上传,预览以及图片base64位处理
最近一段时间在做小程序项目,第一期功也完工了.需要好好总结一下经验,把项目中遇到的问题好好总结一下,遇到的问题,踩过的坑.今天写一个小程序实现图片上传,预览,以及删除,图片base64位处理.下面就是 ...
- java中开源日志记录工具log4j
日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹下 002.对 ...
- SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具
Vector矢量图在Android项目中的应用越来越广泛,但是如果你想用Android Studio自带的工具将SVG图片转化成Vector资源文件却是相当麻烦,首先能支持的SVG规范较少,其次操作流 ...
- 基于开源的GOCW和Directshow.net,实现摄像头预览、采集、录像等操作
本文基于开源的GOCW和Directshow.net,实现图像采集等操作.最为关键的部分在于可以实现摄像头的控制,同时关于视频采集进行了实现. 具体的内容请关注首发于51CTO的课程<基于Csh ...
- 开源日志记录工具log4j
前言:当我们进行大的项目书写的时候或者我们选择维护程序的时候,想知道几点几时我们录入的数据有bug是那么我们就采用--------------------------->log4j记录日志的信息 ...
- 【学习笔记】开源日志记录工具log4j使用方法
http://blog.csdn.net/zouqingfang/article/details/37558469 一.在MyEclipse中使用log4j的步骤比较简单,主要分为以下四个步骤: 1. ...
- 微信小程序实现图片上传,预览,删除
wxml: <view class='imgBox'> <image class='imgList' wx:for="{{imgs}}" wx:for-item= ...
- 微信小程序开发正常,真机预览模式错误
原因是开发时设置了不检查域名是否合法,去后台设置上就可以了
随机推荐
- 5-3 time模块
1.取当前时间戳和当前格式化时间 import time1 # 以时间戳的形式打印当前时间 1543849862 print(int(time.time()))#时间戳 # 取当前格式化好的时间 20 ...
- webpack+thymeleaf实现数据直出
webpack动态插入thymeleaf模板,MVC将要使用数据传递到模板中渲染,得到的html就已经带有要初始显示的数据了github:https://github.com/947133297/we ...
- c语言——字符串
char str[] = "http://c.biancheng.net"; char str[] = "http://c.biancheng.net"; ch ...
- 重写BaseAdapter实现ListView
public class BaseAdapterActivity extends BaseActivity { private ListView base_adapter_listView; priv ...
- 菜鸟学Linux - 文件/文件夹的隐藏属性
文件/文件夹居然还有隐藏属性?没错,隐藏属性对于文件/文件夹的安全很重要.好比如说,我们需要使用”鉴定符“来揭开装备的隐藏属性:在Linux中chattr/lsattr就是“鉴定符”. chattr基 ...
- java并发面试题-基础
多线程 java中有几种方法可以实现一个线程? 1.直接继承thread类:2.实现runnable接口: 如何停止一个正在运行的线程?可以使用正在运行的线程,支持线程中断,通常是定义一个volati ...
- Excel动画教程50例(二)
Excel动画教程50例(二) 16.用好Excel的“搜索函数” 17.在Excel中插入超级链接 18.在Excel中打印指定页面 19.在Excel中直接编辑“宏” 20.用窗体调用“宏” 21 ...
- Robotium之Android控件定位实践和建议
本人之前曾经撰文描述Appium和UIAutomator框架是如何定位Android界面上的控件的. UIAutomator定位Android控件的方法实践和建议Appium基于安卓的各种FindEl ...
- 如何解决Jmeter导出的聚合报告是乱码易位问题
在使用Jmeter这个工具的时候,有些单词不懂是什么意思,就切换到这个工具自带的中文语言: 当我们测试完毕,导出聚合报告(Summary Report)的时候: 1.有一些第一个Title下面的中文是 ...
- Halcon18 Linux 下载
Halcon18 Linux下载地址:http://www.211xun.com/download_page_14.html HALCON 18 是一套机器视觉图像处理库,由一千多个算子以及底层的数据 ...