首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在log4net ADONetAppender中使用存储过程?

如何在log4net ADONetAppender中使用存储过程?
EN

Stack Overflow用户
提问于 2018-08-20 00:50:05
回答 2查看 0关注 0票数 0

我正在使用ADONetAppender通过存储过程记录数据。

我的配置设置如下所示。谁能说出我做错了什么?

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2018-08-20 09:09:49

使用“AnsiString”作为varchar的dbType。nvarchar的“字符串”。

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 10:11:11

注意“@Message”参数的大小。log4net正在猜测如何转换类型和将其转换为nvarchar,即使该列是varchar。这是一个大问题,因为nvarchar的最大大小为4000,而varchar的最大大小为8000。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档