使用 .NET Framework 4.6.2 的 log4net
log4net with .NET Framework 4.6.2
我的新 Windows 10 必须安装 Visual Studio 2019,只能使用 .NET Framework 4.6.2。我还在 VS 安装程序中提供了所有可用的框架,包括框架 4.5.2,但不能 select 它,所以我选择了 4.6.2 使用我最新的 log4net 包。但是现在它在使用该应用程序时停止创建我的日志文件。
查看 Apache Log4Net 的 "Supported Frameworks" 页面,它没有列出 4.6 或 4.6.2。这是否意味着它根本不支持。尝试克隆我自己编译的 github 存储库,但它仍然没有创建我的日志文件。
.NET 4 有任何已知问题。6.x?
更新代码:
Globals.asax.cs 包含这个:
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
}
web.config 包含这个:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
还有这个:
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="file"/>
</root>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<encoding value="utf-8"/>
<file value="log\LOG_"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<maxSizeRollBackups value="5"/>
<maximumFileSize value="15MB"/>
<staticLogFileName value="false"/>
<datePattern value="yyyy-MM-dd'.log'"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
我的 cs 文件调用这个来记录:
log4net.LogManager.GetLogger(HttpContext.Current.Session.SessionID).Debug(message);
很奇怪。根目录中缺少 Global.asax 文件。由于 Global.asax.cs 被编译到 DLL 中,我认为它无论如何都会运行,但我们需要保留 Global.asax 其内容只是 THIS:
<%@ Application Codebehind="Global.asax.cs" Inherits="MyNamespace.App.Global" Language="C#" %>
没有这个,所有具有 .Configure() 调用 log4net 的 Application_Start 都不会被调用。不知道。
我的新 Windows 10 必须安装 Visual Studio 2019,只能使用 .NET Framework 4.6.2。我还在 VS 安装程序中提供了所有可用的框架,包括框架 4.5.2,但不能 select 它,所以我选择了 4.6.2 使用我最新的 log4net 包。但是现在它在使用该应用程序时停止创建我的日志文件。
查看 Apache Log4Net 的 "Supported Frameworks" 页面,它没有列出 4.6 或 4.6.2。这是否意味着它根本不支持。尝试克隆我自己编译的 github 存储库,但它仍然没有创建我的日志文件。
.NET 4 有任何已知问题。6.x?
更新代码: Globals.asax.cs 包含这个:
protected void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
}
web.config 包含这个:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
还有这个:
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="file"/>
</root>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<encoding value="utf-8"/>
<file value="log\LOG_"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<maxSizeRollBackups value="5"/>
<maximumFileSize value="15MB"/>
<staticLogFileName value="false"/>
<datePattern value="yyyy-MM-dd'.log'"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline"/>
</layout>
</appender>
</log4net>
我的 cs 文件调用这个来记录:
log4net.LogManager.GetLogger(HttpContext.Current.Session.SessionID).Debug(message);
很奇怪。根目录中缺少 Global.asax 文件。由于 Global.asax.cs 被编译到 DLL 中,我认为它无论如何都会运行,但我们需要保留 Global.asax 其内容只是 THIS:
<%@ Application Codebehind="Global.asax.cs" Inherits="MyNamespace.App.Global" Language="C#" %>
没有这个,所有具有 .Configure() 调用 log4net 的 Application_Start 都不会被调用。不知道。