简体   繁体   English

log4net AdoNetAppender - SqlParameterCollection不包含参数

[英]log4net AdoNetAppender - SqlParameterCollection does not contain parameters

In one of my projects I get this error: 在我的一个项目中,我收到此错误:

System.IndexOutOfRangeException: SqlParameterCollection does not contain SqlParameter with ParameterName "@log_date".
в System.Data.SqlClient.SqlParameterCollection.GetParameter(String parameterName)
в System.Data.Common.DbParameterCollection.System.Data.IDataParameterCollection.get_Item(String parameterName)
в log4net.Appender.AdoNetAppenderParameter.FormatValue(IDbCommand command, LoggingEvent loggingEvent)
в log4net.Appender.AdoNetAppender.SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
в log4net.Appender.AdoNetAppender.SendBuffer(LoggingEvent[] events)

Here is appender configuration (which works perfectly in others projects): 这是appender配置(在其他项目中完美运行):

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
        <bufferSize value="1" />
        <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionString value="Data Source=*****;Initial Catalog=****;Integrated Security=SSPI" />
        <commandText value="INSERT INTO [LogsDB].[dbo].[Logs] ([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="@exception" />
            <dbType value="String" />
            <size value="2000" />
            <layout type="log4net.Layout.ExceptionLayout" />
        </parameter>
    </appender>

If someone had this problem, I'll really appreciate for helping 如果有人遇到这个问题,我真的很感激你的帮助

Install-Package Log4net -Version 2.0.3 安装包Log4net -Version 2.0.3

Work for me(have same problem) 为我工作(有同样的问题)

Solved it. 解决了它。 Upgraded Log4Net to 2.04 ! 将Log4Net升级到2.04! Then ran the command supplied above ! 然后运行上面提供的命令! No idea what I am doing. 不知道我在做什么。 But I am now able to log to the database ! 但我现在能够登录到数据库!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM