我见过的任何例子都是这样的:
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 */));
在每个班级。