Как регистрировать исключения с сетевыми целями в NLog

Я использую структуру ведения журнала 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() для объединения и форматирования сообщения и текста исключения. Это работает хорошо, но это не то, что я ищу здесь.

8
задан Community 23 May 2017 в 10:34
поделиться