Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# Log4Net不在MVC web应用程序中工作,但在控制台和窗口应用程序中工作_C#_Asp.net Mvc_Log4net - Fatal编程技术网

C# Log4Net不在MVC web应用程序中工作,但在控制台和窗口应用程序中工作

C# Log4Net不在MVC web应用程序中工作,但在控制台和窗口应用程序中工作,c#,asp.net-mvc,log4net,C#,Asp.net Mvc,Log4net,我创建了一个由类库、MVC web应用程序和控制台应用程序组成的解决方案 对于我的类库,项目实际上负责使用log4net执行日志记录,它还包括log4net.config中的log4net配置。目前我面临一个问题,当我的web应用程序从类库调用日志函数时,日志记录不起作用。但当我的控制台应用程序运行时,它运行良好。我的log4net.config如下所示: <?xml version="1.0" encoding="utf-8" ?> <configuration>

我创建了一个由类库MVC web应用程序控制台应用程序组成的解决方案

对于我的类库,项目实际上负责使用log4net执行日志记录,它还包括log4net.config中的log4net配置。目前我面临一个问题,当我的web应用程序从类库调用日志函数时,日志记录不起作用。但当我的控制台应用程序运行时,它运行良好。我的log4net.config如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Temp\" />
      <datePattern value="'Test.log_'yyyy-MM-dd'.log'" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <appendToFile value="true" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <conversionPattern value="%date [%thread] %-5level %logger [%method] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>
private static readonly log4net.ILog log = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void Write ()
{
    log.Info("Success");
}
我的示例类库函数如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Temp\" />
      <datePattern value="'Test.log_'yyyy-MM-dd'.log'" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <appendToFile value="true" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <conversionPattern value="%date [%thread] %-5level %logger [%method] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>
</configuration>
private static readonly log4net.ILog log = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void Write ()
{
    log.Info("Success");
}
我已将log4net.config复制到输出目录设置为始终复制

控制台应用程序的log4net输出示例[Test.log_yyyy-MM-dd.log]:

2019-10-01 12:07:48,923 [1] INFO  ClassLibrary2.Class1 [Write] - Success
但是有一个为MVCWeb应用程序生成的日志文件。是否需要为web应用程序配置其他步骤

如果您能帮我,我将不胜感激


谢谢。

尝试在web.config中添加ConfigSections。另外还有专门针对MVC应用程序的指南



您是否在应用程序启动方法中添加了一些内容?(global.asax)例如:

string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));