Can you pull the connectionString for a log4net AdoNetAppender from elsewhere in a web.config file?
It is possible to use a DB connection string specified in web.config without creating a new class, though you would need to use log4net build that hasn't been released yet. It can be downloaded from SVN repository http://svn.apache.org/viewvc/logging/log4net/trunk/
Your config will look as follows:
<connectionStrings> <add name="connStr" connectionString="Data Source=localhost; ..." /></connectionStrings><log4net> <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionStringName value="connStr" /> ...</log4net>
Please note that connectionType
still needs to be specified.
Create a class that extends AdoNetAppender
- say, WebAppAdoNetAppender
. Implement the ConnectionString
property in that class, and retrieve the connection string from your web.config file in that property setter.
<log4net> <appender name="AdoNetAppender" type="MyApp.WebAppAdoNetAppender"> ...
...
public class WebAppAdoNetAppender : log4net.Appender.AdoNetAppender{ public new string ConnectionString { get { return base.ConnectionString; } set { base.ConnectionString = ... } }}
fyi this will be implemented in 1.2.11 according to this. however I have no idea when they are going to release it.