gpt4 book ai didi

wpf - App 对象中的 Log4Net?

转载 作者:行者123 更新时间:2023-12-03 03:47:52 25 4
gpt4 key购买 nike

我正在开始在 WPF 桌面应用程序中进行日志记录,使用 Log4Net 作为日志记录组件。这是我的问题:在一个简单的桌面应用程序中,是否有任何理由不将我的记录器实例化为 App 类 (App.xaml.cs) 的属性,就像这样?

public partial class App : Application
{
private static readonly ILog p_Logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

public ILog Logger
{
get { return p_Logger; }
}

#endregion
}
}

这将允许我调用记录器

最佳答案

我想到了一个原因:由于 App 类的静态构造函数是要运行的代码的第一位,因此您将在之前实例化 ILog 实例。已经配置了 log4net。因此,您的 ILog 实例将无法使用。一般来说,您会这样做:

public partial class App : Application
{
private static ILog log;

static App()
{
XmlConfigurator.Configure();
log = LogManager.GetLogger(typeof(App));
}
}

顺便说一句,MethodBase 业务确实让我感到畏缩。为什么不直接使用 typeof(App) 呢?无论如何,您不应该在没有验证的情况下复制/粘贴代码...并且 typeof(App) 将与重构工具一起正常工作...

关于wpf - App 对象中的 Log4Net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com