微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Log4Net独立配置文件不能正常工作

我有一个奇怪的问题.我在解决方案中有多个项目.其中一个是WebAPI,它记录得很好.另一个是MVC管理站点,这个不会登录.这是我尝试过的.

我的日志代码

var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Some log message");

在assemblyInfo中,我尝试了以下各项……

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "logging.config",Watch = true)]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "C:\\full_path\\logging.config",Watch = true)]

在Global.asax application_start中我尝试了以下(删除assemblyInfo行)

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("Logging.config"));
var log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Info("Application starting");

这也不会创建日志.我可以创建一个方法方法是使用global.asax中的代码和logging.config的完整路径.

我很困惑,因为webapi只使用只有相对路径的assemblyInfo.我还使用AssemblyInfo解决方案(相对路径)制作了带有MVC项目的示例虚拟解决方案,并且它也在那里工作.

有任何想法吗?

更新 – 发现问题

我必须在Application_Start中设置配置文件观察器:

log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "logging.config"));

事实证明,DotNetopenAuth.Core.dll使用log4net,并且使用AssemblyInfo解决方案无法正常工作.我在这博客中找到了详细信息:http://hanskindberg.wordpress.com/2013/04/07/log4net-configuration/

谢谢

解决方法

我必须在Application_Start中设置配置文件观察器:
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "logging.config"));

事实证明,并且使用AssemblyInfo解决方案无法正常工作.我在这博客中找到了详细信息:http://hanskindberg.wordpress.com/2013/04/07/log4net-configuration/(查看提到DotNetopenAuth.Core.dll的段落)

原文地址:https://www.jb51.cc/csharp/99996.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐