我有一个名为ErrorLog
的实用程序类,它基本上会执行一些基本的错误记录日志,记录错误消息,堆栈跟踪等。
因此,在我的主要C#应用程序中,我几乎总是将这段代码ErrorLog el = new ErrorLog()
插入catch(Exception e)
部分,然后开始调用其方法来进行日志记录。
例如,这是ErrorLog
类中的方法之一
public void logErrorTraceToFile(string fname, string errorMsg, string errorStackTrace)
{
//code here
}
无论如何,我只是想知道这是否是以这种方式记录错误的好方法?在我看来,这种解决方案有点笨拙。 (考虑到在每个catch块中,您创建
el
对象并重复调用其方法。)此外,就存储错误日志文件而言,最佳/最合理的位置在哪里保存它们?目前,我只是对目录
C:\ErrorLogs\
进行了硬编码,因为我仍在测试一些内容。但是我确实想在忘记之前把它做好。有什么想法或建议吗?
谢谢。
最佳答案
通常,我使用Singleton模式拥有一个应用程序范围的Logger。
public class Logger
{
protected static Logger _logger;
protected Logger()
{
// init
}
public void Log(string message)
{
// log
}
public static Logger GetLogger()
{
return _logger ?? _logger = new Logger();
}
}
作为存储数据的地方,我将使用应用程序数据或用户数据目录,只有在此位置,您才能确保具有写访问权限。
编辑:这就是从代码的任何位置使用Logger的方式:
Logger.GetLogger().Log("test");
关于c# - 异常捕获和错误记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7566937/