1
내가 이상한 매개 변수 오류log4net AdoNetAppender 기본 매개 변수
log4net:ERROR [AdoNetAppender] ErrorCode: GenericFailure. Exception while writing to database
System.IndexOutOfRangeException: An SqlParameter with ParameterName '@log_date' is not contained by this SqlParameterCollection.
내가 매개 변수 선언
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
잘못 아무것도 볼 수 없습니다에게지고있어 예/기본 구성으로 log4net AdoNetAppender를 사용하려고 실종
그러나 여전히 매개 변수를 제거하려고하면 같은 방식으로 실패하는 다음 코드 일 뿐이며 연결 문자열을 변경하려고 시도했습니다. 근본적인 오류가있을 수 있다고 생각합니다. 운이 좋지 않을 수도 있습니다.
log4net 디버그 로그도 명확하게 모든 매개 변수에 대한log4net: Setting Collection Property [AddParameter] to object [log4net.Appender.AdoNetAppenderParameter]
을 언급, 그래서 정말
우는 소리에 무슨 일이 일어나고 있는지 모르는 내가 log4net
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="DBAppender" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="DebugAppender" />
</root>
<appender name="DBAppender" type="log4net.Appender.AdoNetAppender">
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionStringName value="CustomerDB" />
<bufferSize value="1" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender">
<immediateFlush value="true" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
</log4net>
에 대한했습니다 전체 설정입니다
버전 - https://stackoverflow.com/questions/33696604/log4net-adonetappender-sqlparametercollection-does-not-contain-parameters#33732495 – sgmoore
2.0.4를 참조하십시오. 시도 할 다음 항목은 업데이트였습니다. 불행히도 NuGet의 다운로드 주소 중 하나가 현재 사무실에서 차단되어 있으므로 나중에 시도해야합니다. –