Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有ASP.NET MVC的log4net:什么都没有发生_C#_Asp.net Mvc_Log4net - Fatal编程技术网

C# 带有ASP.NET MVC的log4net:什么都没有发生

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与ASP.NETMVC结合使用,但我无法让它发生任何事情。 我在web项目根目录中创建了一个配置:


在我被问到:是的,应用程序有写入目录的权限。我已经对此进行了测试,并且应用程序具有访问此目录的权限

下面是我尝试使用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
  • 下载Log4Net:

  • 在ASP.Net MVC 4应用程序中添加引用:

  • 解决方案浏览器
  • 右键单击项目名称
  • 添加引用
  • 浏览Log4Net.dll
  • 修改Web.config文件():

  • 
    

    在AssemblyInfo.cs中添加以下行:

    [程序集:log4net.Config.XmlConfigurator(Watch=true)]


    你的应用程序调用log4net.Config.XmlConfigurator.ConfigureAndWatch的启动代码在哪里?在配置之前你有
    吗?没有,我现在有!而且它工作得很好。我不知道我需要它,虽然现在它是有意义的。谢谢你的帮助!AndWatch我认为这意味着,如果配置文件发生更改,它将立即在应用程序中起作用?是的,因此您可以动态调整日志记录级别等。请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(与另一个参考的中途停留相比,随着时间的推移,这些参考往往会过时)。请考虑在这里添加一个独立的概要,保持链接作为参考。4号为我工作。我将解决方案从空的ASP.NET解决方案移动到ASP.NET web表单,没有这一行,就不会记录任何内容。