使用 .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 都不会被调用。不知道。