【问题标题】:Log4Net not working in MVC web application but working in console and window applicationLog4Net 不在 MVC Web 应用程序中工作,但在控制台和窗口应用程序中工作
【发布时间】:2019-10-01 11:44:11
【问题描述】:

我创建了一个由类库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>

我的 类库 [AssemblyInfo.cs]

中还包含以下行
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

我的示例类库函数如下:

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

但是有为 MVC Web 应用程序生成的日志文件。是否需要为 Web 应用程序配置任何其他步骤?

如果能提供任何帮助,我将不胜感激。

谢谢。

【问题讨论】:

    标签: c# asp.net-mvc log4net


    【解决方案1】:

    您是否在 Application_Start 方法中添加了一些内容? (global.asax) 喜欢:

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

    【讨论】:

      【解决方案2】:

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

      <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections>

      Complete Guide

      【讨论】:

        猜你喜欢
        • 2021-03-13
        • 1970-01-01
        • 1970-01-01
        • 2019-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多