Log4Net 在 MVC Web 应用程序中不工作,但在控制台和 window 应用程序中工作
Log4Net not working in MVC web application but working in console and window application
我创建了一个解决方案,其中包含 class 库 、MVC 网络应用程序 和 控制台申请.
对于我的 class 库项目,实际上负责使用 log4net 执行日志记录,这也包含在 [=55= 中的 log4net 配置]。目前我面临一个问题,当我的 Web 应用程序从 class 库调用日志记录功能时,日志记录无法正常工作。但是当我的控制台应用程序时它工作正常。我的 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>
我还在我的 class 库中包含了下面这行 [AssemblyInfo.cs]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
我的示例class库函数如下:
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 应用程序配置任何其他步骤?
如有任何帮助,我将不胜感激。
谢谢。
尝试在您的 web.config 中添加 ConfigSections。还有专门针对 MVC 应用程序的指南。
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
您是否在 Application_Start 方法中添加了一些内容? (global.asax) 喜欢:
string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));
我创建了一个解决方案,其中包含 class 库 、MVC 网络应用程序 和 控制台申请.
对于我的 class 库项目,实际上负责使用 log4net 执行日志记录,这也包含在 [=55= 中的 log4net 配置]。目前我面临一个问题,当我的 Web 应用程序从 class 库调用日志记录功能时,日志记录无法正常工作。但是当我的控制台应用程序时它工作正常。我的 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>
我还在我的 class 库中包含了下面这行 [AssemblyInfo.cs]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
我的示例class库函数如下:
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 应用程序配置任何其他步骤?
如有任何帮助,我将不胜感激。
谢谢。
尝试在您的 web.config 中添加 ConfigSections。还有专门针对 MVC 应用程序的指南。
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
您是否在 Application_Start 方法中添加了一些内容? (global.asax) 喜欢:
string l4net = Server.MapPath("~/log4net.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));