You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by Adam Patacchiola <ad...@adeptivesw.com> on 2004/03/24 00:20:50 UTC
ADONetAppender problems
Hello,
I have created an ADONetAppender using the following code:
public ADONetAppender CreateADONetAuditAppender() {
ADONetAppender ado = new ADONetAppender();
//how many entries to queue up before writing to db
ado.BufferSize = 1;
//debugging level
ado.Threshold = log4net.spi.Level.DEBUG;
//connection stuff
ado.CommandType =
System.Data.CommandType.StoredProcedure;
ado.CommandText = "InsertAuditEntry";
ado.ConnectionType =
"System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089";
ado.ConnectionString = //omitted for posting
//parameters
ADONetAppenderParameter param = new
ADONetAppenderParameter();
//file id parameter
param.ParameterName = "@FileID";
param.DbType = System.Data.DbType.Int32;
param.Size = 0;
param.Layout = new Layout2RawLayoutAdapter(new
log4net.Layout.PatternLayout("$X{FileID}"));
ado.AddParameter(param);
//user id parameter
param = new ADONetAppenderParameter();
param.ParameterName = "@UserID";
param.DbType = System.Data.DbType.Int32;
param.Size = 0;
param.Layout = new Layout2RawLayoutAdapter(new
log4net.Layout.PatternLayout("$X{UserID}"));
ado.AddParameter(param);
//description parameter
param = new ADONetAppenderParameter();
param.ParameterName = "@Description";
param.DbType = System.Data.DbType.AnsiString;
param.Size = 1000;
param.Layout = new Layout2RawLayoutAdapter(new
log4net.Layout.PatternLayout("%m"));
ado.AddParameter(param);
ado.ActivateOptions();
return ado;
}
However when my program is run I get the following error:
log4net:ERROR [ADONetAppender] Exception while writing to database
System.FormatException: Input string was not in a correct format.
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at log4net.Appender.ADONetAppender.SendBuffer(IDbTransaction dbTran,
LoggingEvent[] events)
at log4net.Appender.ADONetAppender.SendBuffer(LoggingEvent[] events)
The Description field of my table is a VarChar with length 1000.
What am I doing wrong?
Thanks,
Adam