Log4Net을 사용하여 데이터베이스에 예외를 기록하려고합니다. 나는 adonetappender를 사용하고 있으며 작동하지만 최적이 아닙니다. 나는이 같은 예외 매개 변수를 구성하는 경우log4net adonetAppender는 데이터베이스에 null 값을 삽입하지 않습니다.
... 그것은 삽입을 제외한 작동
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%exception"/>
</layout>
</parameter>
은 ""대신에 널 (null)의 예외가없는 경우.
나는이처럼 만약 내가 같은 결과를 얻을 수...
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.ExceptionLayout">
<!-- <key value="exception" /> -->
<!--<conversionPattern value="%exception"/>-->
</layout>
</parameter>
을하지만 그것은 단지 null 값을 삽입이
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.RawPropertyLayout">
<key value="exception" />
</layout>
</parameter>
처럼이있는 경우 ...
항상 호출하는 정적 로깅 래퍼를 가지고 있기 때문에 문제가 발생할 수 있습니다.
LogManager.GetLogger("[GoodLife.Common.Logging]").Debug(message, e); // e being null if there is no exception.
로거에서 디버그 메서드를 호출 할 때 e
이 null 인 경우 null을 삽입하는 방법이 있습니까?
레이아웃에 log4net 문서는 모두 도움이되지 않습니다 내가 Default values for AdoNetAppender parameter
@Stefan에게 감사 드려요.하지만 키가 "예외"인 속성을 만드는 방법을 알면 잘 모르겠습니다. 나는 네가 맞다고 확신하지만 대답을 이해하지 못한다. –
단순히 예외를 통과하는 다른 레이아웃 인 속성을 만들지 않습니다. 이 방법으로 @exception 매개 변수는 예외를 직접 가져옵니다. 나는 그것을 테스트하지 않았다는 것을 인정해야한다. 그래서 당신은 예외 (널이 아닌 경우)를 문자열로 먼저 변환해야 할 필요가있을 수있다. 그러나 이것은 알아 내기 쉬워야한다. –
도움 주셔서 감사합니다. :) –