2011-10-28 20 views
1

メインlog4net設定ファイル以外のファイルにアペンダーセクションを配置したいとします。Log4Netアペンダーをメイン設定ファイル以外のファイルに設定する

目標は、私が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

あなたはlog4net.config.XmlConfiguratorクラスを使用して、それにあなたのXmlElementのインスタンスを渡すことができ、あなたのロガーを初期化するために、あなたのファイルを取得し、XMLのようにそれを治療するためのアセンブリのGetManifestResourceStreamを通してそれを読み込むことができますか既存のlog4net xml設定にXmlElementを追加します。

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); 
関連する問題