Как регистрировать и отслеживать исключения для приложения.net
Мне поручено регистрировать и отслеживать исключения в приложении.net. Цель состоит в том, чтобы все данные были зарегистрированы после развертывания приложения. И информация должна легко отслеживаться для обработки ошибок. Мы используем лазурные услуги. Чтобы сделать постановку задачи более понятной, приведем небольшой демонстрационный код
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-файл. Он будет содержать тысячи журналов, поэтому его будет сложно отследить. Я ищу хорошую структуру, которая также помогает в управляемости.
1 ответ
Если вы используете службы Azure, я считаю, что Application Insights - ваш путь.
Без большого количества настроек он автоматически обнаруживает ваши неперехваченные исключения и регистрирует их, среди множества других вещей. Вы можете добавить свои собственные следы тоже.
Здесь у вас есть хорошая статья, написанная в MSDN, объясняющая весь процесс.
Надеюсь, поможет!