我正在使用ADONetAppender通过存储过程记录数据。
我的配置设置如下所示。谁能说出我做错了什么?
<appender name="ADONetAppender_SqlServer" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" />
<threshold value="ALL"/>
<param name="ConnectionType" value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<param name="ConnectionString" value="<MyConnectionString>" />
<param name="UseTransactions" value="False" />
<commandText value="dbo.LogDetail_via_Log4Net" />
<commandType value="StoredProcedure" />
<parameter>
<parameterName value="@AppLogID"/>
<dbType value="String"/>
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{LoggingSessionId}" />
</layout>
</parameter>
<parameter>
<parameterName value="@CreateUser"/>
<dbType value="String"/>
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{HttpUser}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message"/>
<dbType value="String"/>
<size value="8000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@LogLevel"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
</appender>
发布于 2018-08-20 09:09:49
使用“AnsiString”作为varchar的dbType。nvarchar的“字符串”。
发布于 2018-08-20 10:11:11
注意“@Message”参数的大小。log4net正在猜测如何转换类型和将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000。
https://stackoverflow.com/questions/-100000612
复制相似问题