AXzhz

专注ASP.NET!
        写软件的都是小姐,用软件的都是大爷。真TMD说的正确!
                嫖妓不给钱,反说被强奸!___中国共享软件的无奈!
读小学的时候大学不要钱,读大学了小学不要钱。
没工作时国家有分福利房,工作了后全是高价房!!

                        此软件能有效的破解QQ密码。(注:破解QQ密码是违法行为,请不要将软件用于违法行为)

统计

常用链接

留言簿

积分与排名

.NET学习网址

English

Novel/eBook

非编程类

工具箱

极具价值的链接

阅读排行榜

评论排行榜

把项目运行情况写入系统日志(Log)的三种方法【续】_AX

感谢 @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:http://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.

---------------------------------
【源码】
http://files.cnblogs.com/AXzhz/Project_Log_AX.rar

博客园斧头帮少帮主

少帮主的斧头好久不饮血了!

posted on 2007-12-18 21:11 斧头帮少帮主 阅读(2064) 评论(4)  编辑 收藏 所属分类: 经验总结

评论

#1楼  2007-12-18 21:46 Zealic      

楼主
推荐你使用 NLog 或者 Log4Net
这个和 EventLog 不是一个级别的东西
自己做的话吃力不讨好。

推荐 NLog 配置简单且方便

如果你真想自己做日志功能的话
用这个Common.Logging(http://netcommon.sourceforge.net) 作为基础。

这样你就不用重构你的 ILog 了。


  回复  引用  查看    

#2楼  2007-12-19 17:43 steven love sunny      

在Web项目中如果用你的日志类的话,对于NTFS格式的磁盘你对部分文件的权限如何考虑和处理的呢?能否分享下!   回复  引用  查看    

#3楼 [楼主] 2007-12-19 18:04 斧头帮少帮主      

@steven love sunny
???日志和项目文件的访问权限是两回事吧...
IIS可以配置权限.   回复  引用  查看    

#4楼  2008-07-04 12:22 Tracy.Chuang      

个人觉得这里用抽象类,做成工厂似乎更好
1] Log一般是单例,不需要继承,这样层次比较浅
2] 有可能会根据不同的设置,记录不同类型的消息,可以把这个放到抽象类里实现,其他的类继承它。   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-12-18 21:29 编辑过


相关链接:

 
Google
 
站内搜索:        
园内搜索:
金山词霸: