I may have to try that.  Currently it just fails with an "Oject
reference not set to an instance of an object."

Thanks,

James. 

-----Original Message-----
From: Matt Lund [mailto:ml...@control4.com] 
Sent: 15 June 2009 16:28
To: Log4NET User
Subject: RE: Using AdoNetAppender

Have you already gotten AdoNetAppender to work from a app.config /
web.config first?  If not, I'd suggest getting that to work first.  You
may learn something in that process and it'll spark a realization of
what you're missing in the from-code approach?

-----Original Message-----
From: James Green [mailto:james.gr...@occam-dm.com] 
Sent: Monday, June 15, 2009 9:26 AM
To: Log4NET User
Subject: Using AdoNetAppender

Hi All,
 
I've spent about 4 hours today trying to get this working and have
totally failed so far.
 
I can't even really find much info on how to configure this purely in
Code.  In fact there is precious little I can find on the net in fact.
 
Here is the code I'm using the set up the AdoNetAppender in my app:
 
 
public static void ConfigureDatabaseAppender(string connString)
{
PatternLayout layout = GetDefaultLayout();
_sqlDatabaseAppender = new AdoNetAppender();
_sqlDatabaseAppender.Layout = layout;
_sqlDatabaseAppender.UseTransactions = false;
_sqlDatabaseAppender.BufferSize = 1;
 
_sqlDatabaseAppender.CommandType = System.Data.CommandType.Text;
_sqlDatabaseAppender.ConnectionString = connString;
_sqlDatabaseAppender.CommandText = "INSERT INTO Log
([Date],[Level],[Thread],[Logger],[Message],[Exception]) VALUES
(@log_date, @log_level, @thread, @logger, @message, @exception)";
AdoNetAppenderParameter logDate = new AdoNetAppenderParameter();
RawTimeStampLayout dateLayout = new RawTimeStampLayout();
logDate.ParameterName = "@log_date";
logDate.Layout = dateLayout;
logDate.DbType = System.Data.DbType.DateTime;
_sqlDatabaseAppender.AddParameter(logDate);
AdoNetAppenderParameter logThread = new AdoNetAppenderParameter();
logThread.ParameterName = "@thread";
logThread.Size = 255;
logThread.DbType = System.Data.DbType.String;
_sqlDatabaseAppender.AddParameter(logThread);
AdoNetAppenderParameter logLevel = new AdoNetAppenderParameter();
logLevel.ParameterName = "@log_level";
logLevel.Size = 50;
logLevel.DbType = System.Data.DbType.String;
_sqlDatabaseAppender.AddParameter(logLevel);
AdoNetAppenderParameter logLogger = new AdoNetAppenderParameter();
logLogger.ParameterName = "@logger";
logLogger.Size = 255;
logLogger.DbType = System.Data.DbType.String;
_sqlDatabaseAppender.AddParameter(logLogger);
AdoNetAppenderParameter logMessage = new AdoNetAppenderParameter();
logMessage.ParameterName = "@message";
logMessage.Size = 4000;
logMessage.DbType = System.Data.DbType.String;
_sqlDatabaseAppender.AddParameter(logMessage);
AdoNetAppenderParameter logException = new AdoNetAppenderParameter();
logException.ParameterName = "@exception";
logException.Size = 2000;
logException.DbType = System.Data.DbType.String;
_sqlDatabaseAppender.AddParameter(logException);
_sqlDatabaseAppender.ActivateOptions();
 
BasicConfigurator.Configure(_sqlDatabaseAppender);
}

Any help would be great.

James.


scanned by MessageLabs [www.messagelabs.com]


Reply via email to