我的任务是在.net应用程序中记录和跟踪异常。目的是在部署应用程序后记录所有数据。并且信息应该易于跟踪以处理错误。我们正在使用azure服务。 为了使问题陈述更清楚,这里是一个小的演示代码
public bool Connect()
{
try
{
while (!IsConnected())
{
_terminal = new TerminalClient("denaliTermClient", _terminalsrv_host, _terminalsrv_port);
if (_terminal.KillTerminals())
{
_logger.Log("Existing terminals killed successfully");
}
else
{
_logger.Log("Failed killing existing terminals");
}
_connection.Connect(
_terminalsrv_host,
_terminalsrv_port,
_broker,
_account,
_password);
}
return true;
}
catch (Exception ex)
{
long cid = DefaultLogger.CorrelationID;
_logger.Log(cid, ex);
if (ex.Message != null)
{
if (ex.Message.Contains("No connection could be made because the target machine actively refused it"))
{
_logger.Log(cid, "Connection Failed. Please start the Nj4x Terminal Server.");
}
else if (ex.Message.Contains("Invalid user name or password"))
{
_logger.Log(cid, "Nj4x is running in trial mode. Cannot start trading.");
}
}
this.Connect(); // TODO !
}
return false;
}
现在我应该如何实现这个ILogger接口。我应该使用哪些服务? 我没有这方面的经验,所以显然我对此并不了解。希望我已经明确了问题陈述。
编辑:我不喜欢登录.txt文件的想法。这将包含数千个日志,因此它不容易追踪。我正在寻找一些有助于易处理性的好框架。
答案 0 :(得分:2)
如果您使用的是Azure服务,我相信Application Insights是您的最佳选择。
如果没有很多配置,它会自动检测未捕获的异常并将其记录在许多其他内容中。您也可以添加自己的痕迹。
Here你在MSDN上写了一篇很好的文章,解释了整个过程。
希望它有所帮助!