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();
+                                               }
                                        }
                                }
                        }


Reply via email to