我正在动态配置AdoNetAppender的连接字符串。
我遇到的问题是,log4net.Config.XmlConfigurator.Configure();
正在尝试建立与数据库的连接,但是直到以下行(ConfigureLog4Net(logConnString);
)
的Global.asax.cs
protected void Application_Start()
{
// Other configuration
// Configure logging
var logConnString = ConfigurationManager.ConnectionStrings["LoggingConnection"].ToString();
if (logConnString != null)
{
log4net.Config.XmlConfigurator.Configure();
ConfigureLog4Net(logConnString);
}
}
private void ConfigureLog4Net(string logConnString)
{
Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
if (hierarchy != null && hierarchy.Configured)
{
foreach (IAppender appender in hierarchy.GetAppenders())
{
if (appender is AdoNetAppender)
{
var adoNetAppender = (AdoNetAppender)appender;
adoNetAppender.ConnectionString = logConnString;
adoNetAppender.ActivateOptions(); //Refresh AdoNetAppenders Settings
}
}
}
}
答案 0 :(得分:0)
您可以配置log4net以从ConnectionStrings获取值,而不是将连接字符串本身添加到log4net配置中。而不是connectionString add:
<connectionStringName value="LoggingConnection" />