Do you get the same errors if you use the shorter syntax from the log4net website:
<layout type="log4net.Layout.PatternLayout" value="%level" /> ________________________________ From: Sachin Nair <sachin.r.n...@gmail.com> To: log4net-user@logging.apache.org Sent: Tue, May 25, 2010 7:27:28 AM Subject: Unable to log to database Hi, I am using powershell to log some information to database. Here are the details. 1. Code: Log4NetTest.ps1 $ErrorActionPreference="Stop" # load the log4net library [void][Reflection.Assembly]::LoadFile("C:\Log4netTest\log4net.dll") # Reset any log4net configuration to defaults. [log4net.LogManager]::ResetConfiguration() # configure logging $configFileInfo = gi "C:\Log4netTest\log4net.xml" [log4net.Config.XmlConfigurator]::ConfigureAndWatch($configFileInfo) $logger = [log4net.LogManager]::GetLogger("MyLogs") $logger.info("Started") try { $logger.info("Trying to create a file in the current directory ...") New-Item -ItemType file test.txt $logger.info("Trying to create the same file again in the current directory ...") New-Item -ItemType file test.txt } catch { $logger.Error("You have an error") $logger.Fatal($_.Exception.message) $logger.Fatal($_.Exception.Message,$_.Exception) } finally { $logger.Info("Ended") } 2. Configuration file : log4net.xml <!-- This section contains the log4net configuration settings --> <log4net> <!-- Example of how to configure the AdoNetAppender to connect to MS SQL Server --> <appender name="ADONetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="data source=[Sqlserver];initial catalog=[Database];integrated security=false;persist security info=True;User ID=sa;Password=[password]" /> <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="50" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="50" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger" /> </layout> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="ALL" /> <appender-ref ref="ADONetAppender_SqlServer" /> </root> <!-- Specify the level for some specific categories --> <logger name="MyLogs"> <level value="ALL" /> <appender-ref ref="ADONetAppender_SqlServer" /> </logger> </log4net> 3. Table : CREATE TABLE [dbo].[Log] ( [Id] [int] IDENTITY (1, 1) NOT NULL, [Date] [datetime] NOT NULL, [Thread] [varchar] (255) NOT NULL, [Level] [varchar] (50) NOT NULL, [Logger] [varchar] (255) NOT NULL, [Message] [varchar] (4000) NOT NULL, [Exception] [varchar] (2000) NULL ) Output : output.txt PS C:\Log4netTest> .\Log4NetTest.ps1 log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [ADONetAppender_SqlServer] of type [log4net.Appender.A doNetAppender]. Reported error follows. System.ArgumentNullException: CreateConverterInstance cannot create instance, converterType is null Parameter name: converterType at log4net.Util.TypeConverters.ConverterRegistry.CreateConverterInstance(Type converterType) at log4net.Util.TypeConverters.ConverterRegistry.GetConverterFromAttribute(Type destinationType) at log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(Type destinationType) at log4net.Util.OptionConverter.CanConvertTypeTo(Type sourceType, Type targetType) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetTy pe, Type typeConstraint) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetTy pe, Type typeConstraint) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement) log4net:ERROR XmlHierarchyConfigurator: Appender named [ADONetAppender_SqlServer] not found. log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [ADONetAppender_SqlServer] of type [log4net.Appender.A doNetAppender]. Reported error follows. System.ArgumentNullException: CreateConverterInstance cannot create instance, converterType is null Parameter name: converterType at log4net.Util.TypeConverters.ConverterRegistry.CreateConverterInstance(Type converterType) at log4net.Util.TypeConverters.ConverterRegistry.GetConverterFromAttribute(Type destinationType) at log4net.Util.TypeConverters.ConverterRegistry.GetConvertFrom(Type destinationType) at log4net.Util.OptionConverter.CanConvertTypeTo(Type sourceType, Type targetType) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetTy pe, Type typeConstraint) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetTy pe, Type typeConstraint) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.SetParameter(XmlElement element, Object target) at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement) log4net:ERROR XmlHierarchyConfigurator: Appender named [ADONetAppender_SqlServer] not found. Directory: C:\Log4netTest Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 5/25/2010 1:54 PM 0 test.txt All the files can be found in the attached zip file. Please modify the connection string in the xml file. When we have all the things like i mentioned nothing gets written to the database instead i get an error mentioned in the output.txt file. It seems that there is some issues with the data types for the parameters I've mentioned in the XML file. I say this because if i comment all the other parameters except the date i.e. @log_date everything works fine i see the logs in the table provided the other columns are set to have null values. By the way i am using SQLSever2008 for the database. I would really appreciate it if anyone can look into this and help me out. Thanks in advance :) Warm Regards Sachin Nair