Я использую структуру ведения журнала NLogи пытаюсь получить информацию об исключениях и трассировке стека, отображаемую в любом приложении регистратора UDP, например Sentinelи Log2Console, но могут отображать только часть сообщения журнала. Вывод в файл работает хорошо, как и большинство примеров, поэтому проблема связана с использованием сетевых целей с NLog.
Бонус, если к внутренним исключениям и трассировке стека можно применить собственный формат, но это не обязательно. Исключение.ToString() будет иметь большое значение.
Примечание к примеру кода: С помощью Log2Consoleя нашел статьюо том, как отправить исключение в виде отдельной записи журнала. Хотя это сработало, я не был доволен решением.
Пример кода регистрации исключений:
Logger Log = LogManager.GetCurrentClassLogger();
try
{
throw new InvalidOperationException("My ex", new FileNotFoundException("My inner ex1", new AccessViolationException("Innermost ex")));
}
catch (Exception e)
{
Log.ErrorException("TEST", e);
}
Пример NLog.config:
Некоторые ссылки:
Изменить: После поиска еще немного это кажется ограничением на конце NLog. Недавний патч, по-видимому, там: log4jxmlevent не отображает исключение
Edit2: Я пересобрал NLog с патчем, но это не помогло в приложениях Sentinel или Log2Console. Возможно, мне придется попробовать log4net, чтобы убедиться, что эти приложения действительно поддерживают то, чего я пытаюсь достичь.
Редактировать3: В настоящее время я использую string.Format() для объединения и форматирования сообщения и текста исключения. Это работает хорошо, но это не то, что я ищу здесь.