C# 带有ASP.NET MVC的log4net:什么都没有发生
我正在尝试将log4net与ASP.NETMVC结合使用,但我无法让它发生任何事情。 我在web项目根目录中创建了一个配置:C# 带有ASP.NET MVC的log4net:什么都没有发生,c#,asp.net-mvc,log4net,C#,Asp.net Mvc,Log4net,我正在尝试将log4net与ASP.NETMVC结合使用,但我无法让它发生任何事情。 我在web项目根目录中创建了一个配置: 在我被问到:是的,应用程序有写入目录的权限。我已经对此进行了测试,并且应用程序具有访问此目录的权限 下面是我尝试使用log4net的地方: public class HomeController : Controller { readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Refl
在我被问到:是的,应用程序有写入目录的权限。我已经对此进行了测试,并且应用程序具有访问此目录的权限
下面是我尝试使用log4net的地方:
public class HomeController : Controller
{
readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public ActionResult Index()
{
log.Error("In Index ");
return View();
}
}
当我运行应用程序并转到这个控制器时,log4net什么也不做;它不会在该目录或任何东西中创建文件
我已经为log4net启用了内部调试,并且在控制台中没有收到任何输出错误。
以下是我在log4net中看到的全部内容:
log4net:log4net程序集[log4net,版本=1.2.10.0,区域性=neutral,PublicKeyToken=1b44e1d426115821]。从[C:\Users\twaldron.BULLFROGSPAS\AppData\Local\Temp\Temporary ASP.NET Files\root\7642c99a\60feb7f2\assembly\dl3\17247033\008dfd6d\u e2d0ca01\log4net.DLL]加载。(.NET运行时[2.0.50727.4952]在Microsoft Windows NT 6.1.7600.0上)
log4net:DefaultRepositorySelector:defaultRepositoryType[log4net.Repository.Hierarchy.Hierarchy]
log4net:DefaultRepositorySelector:正在为程序集创建存储库[Bullfrog.DWS.Web,版本=1.0.0.0,区域性=中立,PublicKeyToken=null]
log4net:DefaultRepositorySelector:Assembly[Bullfrog.DWS.Web,Version=1.0.0,Culture=neutral,PublicKeyToken=null]从[C:\Users\twaldron.BULLFROGSPAS\AppData\Local\Temp\Temporary ASP.NET Files\root\7642c99a\60feb7f2\Assembly\dl3\2960c79f\b876bb2d\U aca7cb01\Bullfrog.DWS.Web.DLL]加载
log4net:DefaultRepositorySelector:Assembly[Bullfrog.DWS.Web,版本=1.0.0.0,区域性=neutral,PublicKeyToken=null]未指定RepositoryAttribute
log4net:DefaultRepositorySelector:使用存储库[log4net默认存储库]和存储库类型[log4net.repository.Hierarchy.Hierarchy]
log4net:DefaultRepositorySelector:使用类型[log4net.repository.Hierarchy.Hierarchy]创建存储库[log4net默认存储库]
“WebDev.WebServer20.EXE”(托管(v2.0.50727)):加载了“匿名托管的DynamicMethods程序集”
确保你打电话
log4net.Config.XmlConfigurator.Configure();
在应用程序启动时。在global.asax中是否有类似的内容
void Application_Start(object sender, EventArgs e)
{
string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));
...
在ASP.NET MVC 4 Web应用程序中混淆Log4Net
在AssemblyInfo.cs中添加以下行:
[程序集:log4net.Config.XmlConfigurator(Watch=true)]
你的应用程序调用log4net.Config.XmlConfigurator.ConfigureAndWatch的启动代码在哪里?在配置之前你有
吗?没有,我现在有!而且它工作得很好。我不知道我需要它,虽然现在它是有意义的。谢谢你的帮助!AndWatch我认为这意味着,如果配置文件发生更改,它将立即在应用程序中起作用?是的,因此您可以动态调整日志记录级别等。请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(与另一个参考的中途停留相比,随着时间的推移,这些参考往往会过时)。请考虑在这里添加一个独立的概要,保持链接作为参考。4号为我工作。我将解决方案从空的ASP.NET解决方案移动到ASP.NET web表单,没有这一行,就不会记录任何内容。