2010-09-22 78 views

回答

2

我推荐使用log4net或NLog等日志框架。这些框架允许您登录到许多目的地,更重要的是,它们允许您在完成应用程序后作出决定,即可以配置日志消息的写入位置。

就我个人而言,如果是web应用程序,我会登录到数据库。

1

或者,你可以使用通用日志的基础设施来隐藏实现和随意记录器之间切换
http://netcommon.sourceforge.net

如果您存储记录在很大程度上是由你将如何消费记录数据决定(即读,解释日志数据,如果需要采取行动)。如果分析日志数据的人可以访问该计算机并且不是关键业务,则只需登录文件即可。如果机器对您的业务至关重要,那么您可能需要某种监控软件并将日志记录发布到事件日志中,否则WMI会变得有趣。

如果您登录到文件,请考虑您需要多长时间记录数据以及您需要多少时间。您可以使用滚动日志文件来确保它们不会变得很大并占用一半的硬盘空间。您也可以在没有任何错误的情况下使用筛选器或优先级记录错误,并在调查问题时打开筛选器进行调试或冗长。

IIRC log4net和/或企业库可以登录到WCF服务跟踪查看器可读的格式,请参阅http://msdn.microsoft.com/en-us/library/ms732023.aspx(但我不确定那个)。尽管Log4net有一个仪表盘。

+0

你能不能详细说明“消耗结果”。谢谢。 – HotTester 2010-09-22 06:40:55

+0

我的意思是'读取和解释日志数据,如果需要采取行动'。如果您有监控解决方案,这可以是完全手动的,或者是部分自动化的。 – stombeur 2010-09-22 06:47:38

1

有两种方法:将日志详细信息保存到数据库中或创建一个简单的文本文件,以便您可以跟踪事件。

在这里,我给出的只是简单的代码,以便如何跟踪事件并保持日志详细信息并将日志详细信息保存到文本文件中。它可以帮助你解决你的问题。

所有你必须输入名字空间的第一:

using System.IO; 

我创造了小功能来跟踪日志详情 -

public void LogEntry(string msg, string path) 
    { 
     try 
     { 
     //It will open the file, append the your message and close the file    
     File.AppendAllText(path,msg);    
     } 
     catch (Exception ex) 
     { 
      ex.GetBaseException(); 
     } 
    } 

在此功能,您必须通过两个参数

  1. 消息
  2. 文字的路径文件

例如

string logmsg; 
logmsg = "** " + DateTime.Now.ToString() + "||" + "User:" + UserName + "||" + " EventDesc: Login Attempt Failed"; 
        l1.LogEntry(logmsg, Server.MapPath("LoginEvent.txt")); 

这里LoginEvnet.txt是我在哪里存储日志信息的文本文件的名称。

logmsg-这是你必须跟踪或存储在日志文件中的消息

相关问题