2013-09-16 3 views
6

Ищем способ войти выразительные сообщения, когда я ловлю исключение с NLog 2.0.1, что-то вродеNLog аргументов для errorException сообщения

try { 
    .... 
} 
catch(Exception ex) { 
    logger.ErrorException("Error with query {0}", query, ex); 
} 

Но NLog не поддерживает его. Другие формы, которые случились со мной являются

logger.ErrorException( String.Format("Error with query {0}", query)) , ex); 

или

logger.Error("Error with query {0} {1} {2}", query, ex.Message, ex.StackTrace); 

или

logger.Error("Error with query {0}", query); 
logger.ErrorException("", ex); 

или

LogEventInfo ei = new LogEventInfo(LogLevel.Error, logger.Name, null, 
         "Error with query {0}", new object[] { query }, ex); 
logger.Log(ei); 

Но никто не кажется таким простым, как вызов logger.Error() На данный момент, первый вариант моего favority несмотря на формат строка, которая, возможно, не будет использоваться:

  • второго варианта не использовать параметры макета для exceptions.
  • третий создает две записи в журнале и может быть запутан.
  • четвертый вариант гораздо менее ясен.

Есть еще несколько?

+1

'String.Format (" Ошибка с запросом% s ", query)' Это C#? –

+0

ups .. я сделал с помощью java. Отредактировано – Narkha

+2

Почему бы просто не написать метод расширения? –

ответ

0

Нет других переопределений. Вам не повезло.

Ваш второй пример выглядит красиво.

Когда я смотрю в Visual Studio Error() имеет 42 различных подписей

ErrorException() только имеет один.

Из следующей ссылке вы можете увидеть это: (нажмите на кнопку "Ошибка" и "ErrorException" ссылки)

http://nlog-project.org/documentation/v2.0.1/html/AllMembers_T_NLog_Logger.htm

3

Update,

Это возможно, так как NLog 4.0

logger.Error(ex, "Error with query {0}", query); 

См. news post - consistent logging of exceptions

+0

Отличная особенность! Я не принимаю ответ, потому что это было сделано для NLog 2.0.1, но хорошо, что библиотека улучшилась. – Narkha

+0

Конечно, хотя мне не нравятся неотвеченные вопросы – Julian

Смежные вопросы