を書くために適切なログの制御を取得するために問題を抱えて、これを行っていないが、これを行う方法の数は、おそらくありますので、これが最善の方法ではないかもしれないが、それは
を動作するはずです
public OpenLogFile(string fileName)
{
log4net.Layout.ILayout layout = new log4net.Layout.PatternLayout("%d [%t]%-5p : - %m%n");;
log4net.Appender.FileAppender appender = new log4net.Appender.FileAppender(layout , filename);
appender.Threshold = log4net.Core.Level.Info;
log4net.Config.BasicConfigurator.Configure(appender);
}
ファイルを切り替える必要があるときは、OpenLogfileを呼び出してください。
レイアウトやアペンダーの種類を調整する必要がある場合があります。
この方法の大きな欠点は、xml構成が失われ、実行時に設定を変更できることです。だから、より良い方法は
プロパティを使用してXMLファイルにあなたのアペンダを構成することであるかもしれない例えば
file type="log4net.Util.PatternString" value="Logfiles\Log_For_%property{MyLogFileName}"
次に、あなたのコード内で使用すると、プロパティ
log4net.GlobalContext.Properties["MyLogFileName"] = ...;
を変更することができますトリッキーなビットですlog4netをリロードするようにします。私はこれのドキュメントを読んでいないので、リロードを強制する方法があるかどうかわかりません。 log4net.Config.XmlConfigurator.ConfigureAndWatchを再度呼び出すだけでうまくいくかもしれません。それ以外の場合は、xmlファイルを開いてもう一度保存した場合は動作します(何も変更する必要はありません)
これが役に立ちます。
指摘ありがとうございます:log4net.GlobalContext.Properties ["MyLogFileName"] = ...; –