我们如何记录 asp.net 应用程序的用户操作。此外,保存日志数据的方法是什么?请指导。
3 回答
我推荐使用像 log4net 或 NLog 这样的日志框架。这些框架允许您登录到许多目的地,更重要的是,它们允许您在完成应用程序后做出决定,即您可以配置日志消息的写入位置。
如果是 Web 应用程序,我个人会登录到数据库。
或者,您可以使用 Common Logging 基础设施来隐藏实现并在记录器之间随意切换
http://netcommon.sourceforge.net
您存储日志的位置很大程度上取决于您将如何使用日志数据(即读取和解释日志数据,在需要时采取行动)。如果分析日志数据的人可以访问机器并且它不是关键业务,则只需登录到文件。如果机器对您的业务至关重要,您可能拥有某种监控软件并将日志记录发布到事件日志或 WMI 变得有趣。
如果您记录到文件,请考虑您需要多长时间的记录数据以及一次需要多少。您可以使用滚动日志文件来确保它们不会变得非常大并占用您一半的硬盘空间。您还可以使用过滤器或优先级在没有错误时仅记录错误,并在调查问题时打开过滤器进行调试或详细说明。
IIRC log4net 和/或企业库可以登录到 WCF 服务跟踪查看器可读的格式,请参阅http://msdn.microsoft.com/en-us/library/ms732023.aspx(但我不确定那个)。不过,Log4net 有一个仪表板。
有两种方法:将日志详细信息保存到数据库中,或者创建一个简单的文本文件以便跟踪事件。
在这里,我给出了如何跟踪事件和维护日志详细信息并将日志详细信息保存到文本文件中的简单代码。它可以帮助您解决问题。
首先,您必须导入名称空间:
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();
}
}
在此函数中,您必须传递两个参数
- 信息
- 文本文件的路径
例如
string logmsg;
logmsg = "** " + DateTime.Now.ToString() + "||" + "User:" + UserName + "||" + " EventDesc: Login Attempt Failed";
l1.LogEntry(logmsg, Server.MapPath("LoginEvent.txt"));
这里的 LoginEvnet.txt 是我存储日志详细信息的文本文件的名称。
logmsg - 这是您必须跟踪或存储在日志文件中的消息