Uploaded image for project: 'Log4net'
  1. Log4net
  2. LOG4NET-495

Error when BufferSize is >1, parameter already defined

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.15
    • 1.2.15
    • Appenders
    • None
    • Windows 7

    Description

      Downloaded the subject revision 1714197 in order to get the ADONetAppender_SqlServer appender to work as this revision corrected a problem. The appender began to work. However if the BufferSize was increased to >1 an error was reported that the parameter @log_date was already defined.

      The error appears to be in SendBuffer. Because the IDbCommand dbCmd is being reused inside the foreach (LoggingEvent e in Events), each time the param.Prepare(dbCmd) is called for the same appender it will attempt to add a parameter that has already been added.

      My local solution was to clear the commands parameter list prior to adding the preparing the paramters:
      foreach (LoggingEvent e in events)
      {
      dbCmd.Parameters.Clear(); //****added this line****

      // Set the parameter values
      foreach (AdoNetAppenderParameter param in m_parameters)

      { param.Prepare(dbCmd); param.FormatValue(dbCmd, e); }

      // Execute the query
      dbCmd.ExecuteNonQuery();
      }

      Attachments

        Issue Links

          Activity

            People

              nachbarslumpi Dominik Psenner
              rickburge@comcast.net Rick Burge
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: