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

时间:2015-02-24 19:53:12

标签: c# logging log4net

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

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

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

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

关于可能出错的任何想法?

1 个答案:

答案 0 :(得分:3)

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

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

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

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