For some reason the xml config didn't show up. I am using the config from:
http://logging.apache.org/log4net/re...tAppender.html
nicad49 wrote:
Powershell and log4net to SQL Database
09-Mar-10
Has anyone successfully used log4net to log to an SQL database? I am able to use log4net successfully when logging to console, files, eventlog, etc, however when attempting to log to the ADONetAppender, it cannot load my configuration file.
Here are the Powershell commands used to get setup:
$log4netDLL = "C:\Path\log4net.dll"
$log4netConfig = "C:\Path\log4net.config"
[Void][Reflection.Assembly]::LoadFile($log4netDLL)
[Log4Net.LogManager]::ResetConfiguration()
[Log4Net.Config.XmlConfigurator]::ConfigureAndWatch($log4netConfig)
Here is the ADONetAppender section of my config file:
<log4net>
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Server=SERVER\INSTANCE;Database=LOG;Trusted_Connection=True;"/>
<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.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%thread" />
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout" value="%level" />
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%logger" />
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout" value="%message" />
</parameter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="AdoNetAppender_SqlServer" />
</root>
</log4net>
This results in the following error:
log4net:ERROR XmlHierarchyConfigurator: Failed to find type [log4net.Layout.PatternLayout] set on [l
ayout]
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.SetParameter(XmlElement element, Object target)
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.ConvertStringTo(Type target, String txt)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ConvertStringTo(Type type, String value)
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.
I have tried changing the layoutType to "log4net.Layout.RawPropertyLayout" (in the parameter section), and can get the .config file to load, however it only logs NULL values to the database.
Here is an example using the RawPropertyLayout:
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.RawPropertyLayout" >
<key value="%logger" />
</layout>
</parameter>
Previous Posts In This Thread:
Submitted via EggHeadCafe - Software Developer Portal of Choice
Adding WCF Service References
http://www.eggheadcafe.com/tutorials...ce-refere.aspx