感谢 @Pharaoh @Clark Zheng 在上篇Blog的留言,从而使上篇的第三种方法发光了.(③使用Diagnostics.EventLog类)
上篇:
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;
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
博客园→斧头帮少帮主
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2006-12-18 对DataGrid/DataList/Repeater添加序号的三种方法_AX