2011-10-28 48 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); 
相關問題