Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2.10, 1.2.11
-
None
-
Windows Server 2008, .NET 3.5 SP1, SQL Server 2008
Description
The AdoNetAppenderParameter.Size page (http://logging.apache.org/log4net/release/sdk/log4net.Appender.AdoNetAppenderParameter.Size.html) says "This property is optional. If not specified the ADO.NET provider will attempt to infer the size from the value."
However, I just got the following exception in the log4net internal debug trace, with the following parameter (maps to a VARCHAR(MAX)):
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
log4net:ERROR [AdoNetAppender] Could not prepare database command [INSERT INTO ....]
System.InvalidOperationException: SqlCommand.Prepare method requires all variable length parameters to have an explicitly set non-zero Size.
at System.Data.SqlClient.SqlParameter.Prepare(SqlCommand cmd)
at System.Data.SqlClient.SqlCommand.Prepare()
at log4net.Appender.AdoNetAppender.InitializeDatabaseCommand()
This would suggest the Size parameter cannot be null.