Logging 如何在log4net ADONetAppender中使用存储过程?
我正在使用ADONetAppender(尝试)通过存储过程记录数据(以便将逻辑注入日志记录例程) 下面列出了我的配置设置。谁知道我做错了什么Logging 如何在log4net ADONetAppender中使用存储过程?,logging,log4net,adonetappender,Logging,Log4net,Adonetappender,我正在使用ADONetAppender(尝试)通过存储过程记录数据(以便将逻辑注入日志记录例程) 下面列出了我的配置设置。谁知道我做错了什么 多亏了一位警惕的DBA,我们解决了这个问题 请注意“@Message”参数的大小。log4net正在猜测如何转换该类型,以及(我认为)如何将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000 DBA发现了本文所述的错误: 我把尺寸改为4000,一切都很顺利 希望
多亏了一位警惕的DBA,我们解决了这个问题 请注意“@Message”参数的大小。log4net正在猜测如何转换该类型,以及(我认为)如何将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000 DBA发现了本文所述的错误: 我把尺寸改为4000,一切都很顺利 希望这能帮助其他人避免同样的问题 干杯
使用“AnsiString”作为varchar的数据库类型。nvarchar的“字符串”
</configSections>
<log4net>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1"/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="Data Source=yourservername;initial Catalog=Databasename;User ID=sa;Password=xyz;"/>
<commandText value="INSERT INTO Log4Net ([Date], [Thread], [Level], [Logger], [Message],
[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/>
<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 ip=%property{ip}"/>
</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>