把项目运行情况写入系统日志(Log)的三种方法【续】_AX
上篇:http://www.cnblogs.com/AXzhz/archive/2007/12/17/1003315.html
使用自建的DLL写日志.
1.创建一个Web Site项目.
2.引入DLL(Log_AX.dll)
下载DLL:https://files.cnblogs.com/AXzhz/Log_AX.rar
3.使用更方便,只需操作Log类就可,不需改配置文件.
(可以同时指定日志写入系统和文本(参见下面创建Log的代码),也可单独指定一个,文本路径为"C:\日志名.txt")
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//Add these reference
using System.Diagnostics;
using Log_AX;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Log log = new Log(LogType.System | LogType.Text, "AXzhz");
log.Raise("Hello World!");
log.Raise("Hello World!", EventLogEntryType.Warning);
log.Raise("Hello World!", EventLogEntryType.FailureAudit, 2);
log.Raise("Hello World!", EventLogEntryType.SuccessAudit, 666, 666);
log.Raise("Hello World!", EventLogEntryType.Error, 888, 888, new Exception("This is a test exception!"));
//log.DeleteLogFile(LogType.System | LogType.Text, "AXzhz");
}
}
Screen Shot:
---------------------------------------
UML图:简单画了下,箭头太难用了,实在画不下去了..
-------------------------------------------
总结:
感觉很简单的东西,由于需要重载,而且同时执行匹配的Log方式(系统Log,文本Log),被搞的N复杂,差点放弃.
看似简单的东西浪费了我一天的时间.期间改动代码n次,一直往ILog上加方法,考虑不周.构造方法是个重点.
本来想加注释,后来实在觉得麻烦,太累了.
如果同时往系统日志和文本文件写东西,有可能出现异常.(Text文件不能访问,被另外一个进程使用,后来又不出现了)
生成的系统日志不能被删除,删除时抛类似异常:
The event log source 'AX' cannot be deleted, because it's equal to the log name.
---------------------------------
【源码】
https://files.cnblogs.com/AXzhz/Project_Log_AX.rar
博客园→斧头帮少帮主
少帮主的斧头好久不饮血了!