Windows服务未使用Log4Net进行日志记录



我正在使用Log4Net v12.13.0和.Net 4.5。当我将代码作为控制台应用程序运行时,它的日志记录非常好。然而,当我把它作为一项服务运行时,我什么也得不到。该服务以我的登录名身份运行,具有管理员权限。当我附加到进程并在调试模式下逐步执行代码时,就好像配置文件中没有任何内容被读取一样。当您检查记录器对象时,没有任何属性设置为true,例如logger.IsDebugEnabled、logger.IsInfoEnabled等。

以下是我如何配置记录器实例,然后检索相同的实例。

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

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

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

如果LogManager.GetRepository().Configured返回false,则log4net尚未初始化。

假设您的配置是XML格式的,则需要调用log4net.Config.XmlConfigurator.Configure(…)或像[assembly: log4net.Config.XmlConfigurator(…)]这样的汇编属性来加载配置。如果它与app.config在一个单独的文件中,请确保将该文件复制到输出中。

如果已配置log4net,但所有日志级别仍处于禁用状态,请查看LogManager.GetRepository().ConfigurationMessages.Cast<LogLog>()的结果以检查配置问题。

如果你在问题中添加配置,这可能会有所帮助。

最新更新