当应用程序设置为shell时,log4net无法启动

时间:2014-10-17 17:36:22

标签: c# .net log4net windows-shell log4net-configuration

我目前正在使用使用log4net的应用程序。通过Windows资源管理器启动应用程序时,日志记录工作正常,但如果将应用程序设置为Windows shell,则不记录任何内容。当应用程序是shell时,是否存在Windows资源管理器提供的任何log4net依赖项?

修改

在应用程序通过OnStartUp()(这是一个WPF应用程序)启动后,

log4net在不同的程序集中进行初始化和配置。

log4net的初始化和配置如下所示:

    var assembly = Assembly.GetEntryAssembly();
    log4net.GlobalContext.Properties["ApplicationName"] = (assembly != null) ? assembly.GetName().Name : "Unmanaged";

    var log4NetFileInfo = new FileInfo("log4net.config");
    log4net.Config.XmlConfigurator.ConfigureAndWatch(log4NetFileInfo);

1 个答案:

答案 0 :(得分:0)

这可能是一个权限问题。 Log4net被设计为在出错时无声地失败,理由是没有日志记录比死应用程序更好。

在Windows资源管理器中运行的凭据是否与在Windows shell中运行时不同?您是否使用相对路径来查找log4net配置文件?当前工作目录在启动应用程序的两种方式之间是否有所不同?

有关启用log4net内部调试的详细信息,请参阅此问题的答案Log4net doesn't write to file