Author: dpsenner Date: Fri Nov 27 19:19:54 2015 New Revision: 1716909 URL: http://svn.apache.org/viewvc?rev=1716909&view=rev Log: LOG4NET-495: clear parameters when flushing multiple events
Modified: logging/log4net/trunk/src/Appender/AdoNetAppender.cs Modified: logging/log4net/trunk/src/Appender/AdoNetAppender.cs URL: http://svn.apache.org/viewvc/logging/log4net/trunk/src/Appender/AdoNetAppender.cs?rev=1716909&r1=1716908&r2=1716909&view=diff ============================================================================== --- logging/log4net/trunk/src/Appender/AdoNetAppender.cs (original) +++ logging/log4net/trunk/src/Appender/AdoNetAppender.cs Fri Nov 27 19:19:54 2015 @@ -551,19 +551,25 @@ namespace log4net.Appender dbCmd.Transaction = dbTran; } // prepare the command, which is significantly faster - dbCmd.Prepare(); - // run for all events - foreach (LoggingEvent e in events) - { - // Set the parameter values - foreach (AdoNetAppenderParameter param in m_parameters) - { - param.Prepare(dbCmd); - param.FormatValue(dbCmd, e); - } - - // Execute the query - dbCmd.ExecuteNonQuery(); + dbCmd.Prepare(); + // run for all events + foreach (LoggingEvent e in events) + { + // Set the parameter values + foreach (AdoNetAppenderParameter param in m_parameters) + { + param.Prepare(dbCmd); + param.FormatValue(dbCmd, e); + } + + // Execute the query + dbCmd.ExecuteNonQuery(); + + // clear parameters that have been set + if (events.Length > 0) + { + dbCmd.Parameters.Clear(); + } } } }