AppConfig is much simpler - you should start with that then convert to this if you need to - not sure why you'd need to tho?
On Mon, Jun 15, 2009 at 4:31 PM, James Green <james.gr...@occam-dm.com>wrote: > 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] > > > -- Cheers, w://