gpt4 book ai didi

c# - Log4Net 单独的配置文件不起作用

转载 作者:太空狗 更新时间:2023-10-29 18:25:04 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我在一个解决方案中有多个项目。其中之一是 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"));

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

关于c# - Log4Net 单独的配置文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com