惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
G
Google Developers Blog
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
小众软件
小众软件
月光博客
月光博客
Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
The Cloudflare Blog
博客园_首页
美团技术团队
大猫的无限游戏
大猫的无限游戏
B
Blog
IT之家
IT之家
Jina AI
Jina AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 斧头帮少帮主

猜一猜,会输出什么? ASP.NET错误处理的两种方案_AX Log4Net最简单的使用配置_AX 一个修改后的JS日历(Calendar)控件_AX - 斧头帮少帮主 - 博客园 页面回传(PostBack)后恢复滚动条的位置_AX - 斧头帮少帮主 - 博客园 Hidden Field 的值不能回传(PostBack)到后台_AX Delegate(代理)异常:该委托必须有一个目标 WCF学习随笔6--Version变更--我们在前进_AX WCF学习随笔5--我知道:Known--可憐的孩子_AX WCF学习随笔4--契约|序列化详解--祭斧_AX WCF学习随笔3--第一个Sample--祭斧_AX - 斧头帮少帮主 - 博客园 WCF学习随笔2--Contract--磨斧_AX WCF学习随笔1--扫盲--磨斧_AX 把项目运行情况写入系统日志(Log)的三种方法_AX 为用户控件User Control添加事件_AX XML常用操作总结_AX DataTable常用操作总结_AX - 斧头帮少帮主 - 博客园 .NET(C#)代码性能优化_AX - 斧头帮少帮主 - 博客园 Panel的不足及弥补_AX - 斧头帮少帮主 - 博客园
把项目运行情况写入系统日志(Log)的三种方法【续】_AX
斧头帮少帮主 · 2007-12-18 · via 博客园 - 斧头帮少帮主

感谢 @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, 666666);
        log.Raise(
"Hello World!", EventLogEntryType.Error, 888888new 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

博客园斧头帮少帮主