私が見た例は次のようになります。
ILog log = log4net.LogManager.GetLogger(typeof(MainWindow));
本質的に同じことをするために、あちこちにコードをコピーして貼り付けるという考えは好きではありません。
理想的には、いくつかの基本クラスでロガーを構成し、次のようにLog4Netを構成できます。
public ILog log = log4net.LogManager.GetLogger(typeof(MyWindowBase));
そして、すべてのウィンドウにそれを継承させます。これで私が見ることができる問題は、MainWindowが次のように定義されていることです
public partial class MainWindow : Window {}
したがって、すでにから継承していWindow
ます。
私は次のことを考えました:
public partial class MyBase : Window
{
// configure Log4Net here
}
public partial class MainWindow : MyBase
{
// use Log4Net here
}
しかし、これは機能しません。次のエラーが発生します。
'WpfApplication3.MainWindow'の部分的な宣言は、異なる基本クラスを指定してはなりません
では、すべてのウィンドウでLog4Netを構成する必要がない、これを行うための優れた確実な方法があるのでしょうか。
問題が基本クラスの作成にあるのではないことを明確にするために編集します。問題は、これを追加せずにLog4Netを構成するための最良の方法を知りたいということです。
ILog log = log4net.LogManager.GetLogger(typeof(/* Window Type */));
すべてのクラスで。