メイン設定ファイル以外のファイルにLog4Netアペンダを設定する

私は、メインのlog4net設定ファイルとは別のファイルにアペンダセクションを置いています。

目標は、私がlog4net.configを使ってアプリケーションを公開することができるようにすることですが、smtpパラメータのような顧客固有の情報は消去しません。

考え方は次のとおりです。

      
    
    
    
  

 

log4netsmtp.configはセキュリティ上の理由から(私の助けを借りて)顧客によって構築され、決して私によって変更されることはありません。

私の英語のために申し訳ありません、あなたに感謝してください。

よろしく

1

1 答え

アセンブリのGetManifestResourceStreamを通してロードしてファイルを取得し、xmlのように扱い、loggerを初期化するには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);
1
追加された