Windows 服务未使用 Log4Net 记录

Windows service not logging with Log4Net

我在 .Net 4.5 中使用 Log4Net v1.2.13.0。当我 运行 我的代码作为控制台应用程序时,它记录得很好。但是,当我 运行 它作为一项服务时,我什么也得不到。该服务正在 运行ning 作为我的登录名,具有管理员权限。当我附加到进程并在调试模式下单步执行代码时,就好像配置文件中的任何内容都没有被读取一样。当您检查记录器对象 none 的属性是否设置为真时,例如Logger.IsDebugEnabled、Logger.IsInfoEnabled等

这是我配置记录器实例然后检索同一实例的方式。

private static readonly ILog Logger = LogManager.GetLogger(typeof(ServiceHostService));

我正在将日志记录级别设置为全部。

有什么可能出错的想法吗?

如果LogManager.GetRepository().Configured returns false,那么log4net还没有初始化。

假设您在 XML 中有您的配置,将需要调用 log4net.Config.XmlConfigurator.Configure(…) 或像 [assembly: log4net.Config.XmlConfigurator(…)] 这样的程序集属性来加载配置。如果它位于与 app.config 不同的文件中,请确保将该文件复制到输出。

如果配置了 log4net 但所有日志级别仍被禁用,请通过查看 LogManager.GetRepository().ConfigurationMessages.Cast<LogLog>() 的结果检查配置问题。

如果您将配置添加到您的问题中,可能会有所帮助。