我有一个名为ErrorLog
的实用程序类,它基本上会执行一些基本的错误记录,记录错误消息,堆栈跟踪等。
所以在我的主要c#app中,我几乎总是将这段代码ErrorLog el = new ErrorLog()
放入catch(Exception e)
部分,然后开始调用它的方法来进行记录。
例如,这是ErrorLog
class
public void logErrorTraceToFile(string fname, string errorMsg, string errorStackTrace)
{
//code here
}
无论如何,我只是想知道以这种方式记录错误是否是一个好方法?在我看来,这个解决方案有点笨拙。 (考虑在每个catch块中创建el
对象并重复调用其方法。)
另外,在存储错误日志文件方面,保存它们的最佳/最合理位置?目前,我只是对目录C:\ErrorLogs\
进行了硬编码,因为我还在测试一些东西。但我确实想在忘记之前把它弄好。
那么有什么想法或建议吗?
感谢。
答案 0 :(得分:1)
查看ELMAH这在处理和捕获应用程序中的错误方面非常有效。
错误会记录在数据库中。
答案 1 :(得分:0)
通常我使用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");