log4net: расчленить исключение - PullRequest
2 голосов
/ 04 августа 2011

Я хочу отделить трассировку стека исключений от их сообщения. например, в этом примере:

System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.
в BettweenSvc.Bettweensvc.processRequest (RequestManagerRepository rmr, RequestConversation rc) в C: \ Repository \ bettween \ ствол \ Solution \ BettweenSvc \ Bettweensvc.cs: линия 277
at BettweenSvc.Bettweensvc.bettweenTimer_Elapsed (Object отправитель, ElapsedEventArgs e) в C: \ Repository \ bettween \ ствол \ Solution \ BettweenSvc \ Bettweensvc.cs: линия 111

Я хочу войти

System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.

в одном поле, а остальные в другом

В настоящее время у меня есть

<parameter>
  <parameterName value="@exception" />
  <dbType value="String" />
  <size value="2000" />
  <layout type="log4net.Layout.ExceptionLayout" />
</parameter>

в моем AdoNetAppender, как бы я это сделал?

1 Ответ

2 голосов
/ 05 августа 2011

Это должно работать:

<parameter>
  <parameterName value="@exception" />
  <dbType value="String" />
  <size value="2000" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%exception{message}" />
  </layout>
</parameter>

Если вы хотите использовать трассировку стека %exception{stacktrace}.

EDIT :
Если вы используете log4net 1.2.10 тогда вам нужно реализовать собственный макет шаблона, который делает то, что вы хотите.Я рекомендую проверить текущий исходный код log4net (транк), чтобы увидеть, как они это делают (на самом деле это довольно просто). Здесь - пример такого конвертера макетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...