2011-10-28 47 views
1

我想将一个appender部分放在另一个文件中,而不是我的主要log4net配置文件。在除主配置文件之外的另一个文件中设置Log4Net appender

目标是允许我发布我的应用程序与log4net.config但不能抹掉一些客户的具体信息,如smtp参数。

的想法是有:

<logger name="DatabaseLogger">  
    <level value="ALL" /> 
    <appender-ref ref="AdoNetAppender" /> 
    <appender-ref ref="SmtpAppender" /> 
    </logger> 

<appender configSource="log4netsmtp.config"/> 

的log4netsmtp.config是客户出于安全考虑,建立(与我的帮助)和我从未改变。

对不起,我的英语,谢谢你看我。

问候

回答

1

您可以加载它通过大会GetManifestResourceStream让你的文件,并把它当作一个XML,然后初始化您记录您可以使用log4net.config.XmlConfigurator类,并通过它,你的XmlElement实例或将您的XmlElement附加到现有的log4net xml配置中:

Assembly a = Assembly.GetAssembly(this.GetType()); 
Stream stream = a.GetManifestResourceStream("MyAssembly.ConfigFolder.logger.config"); 
XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load(stream); 
// eventually append, modify, merge, check the xml with other info 
XmlConfigurator.Configure(xmlDoc); 
相关问题