代码之家  ›  专栏  ›  技术社区  ›  War

WPF应用程序中的Log4Net设置

  •  5
  • War  · 技术社区  · 6 年前

    我不敢相信我不得不问这个问题,但接下来。。。

    我正在尝试在一个新的WPF应用程序中设置log4net,但由于某些原因,它没有创建日志文件并记录任何内容,所以这里是我迄今为止所做的步骤。。。

    添加来自nuget的最新版本(v2.0.8.0)引用后。

    在AssemblyInfo中。cs:

     [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
    

    应用程序内。配置:

      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a" />
      </configSections>
      <log4net configSource="Log4Net.config" />
    

    在Log4Net中。配置:

    <?xml version="1.0" encoding="utf-8"?>
    <log4net>
      <appender name="rollingLogFile" type="log4net.Appender.RollingFileAppender">
        <file value="D:\Logs\WorkflowApp.log" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="100KB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-6level %logger - %message %exception%newline" />
        </layout>
      </appender>
      <root>
        <level value="DEBUG" />
        <appender-ref ref="rollingLogFile" />
      </root>
    </log4net>
    

    应用程序内。xaml。cs:

    ILog log = LogManager.GetLogger(typeof(App));
    
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        log.Debug("Initialising ...");
    }
    

    作为最后一个“试试看是否有效”的结尾,我将此添加到上述方法中。。。

    XmlConfigurator.Configure();
    

    。。。仍然没有创建长文件。

    我错过了什么?

    编辑:

    因此,根据评论,我想我应该添加以下内容:

    我看到了一些问题&像这样的答案。。。 Using log4net to write to different loggers

    。。。如果我在Log4Net中添加类似的内容。配置。。。

      <logger name="File">
        <level value="DEBUG" />
        <appender-ref ref="rollingLogFile" />
      </logger>
    

    然后将我的记录器结构更改为。。。

    ILog log = LogManager.GetLogger("File");
    

    。。。然而,这仍然不会导致任何事情发生,没有日志文件但没有异常,代码似乎运行良好,除了日志调用似乎正在执行但没有结果之外。

    1 回复  |  直到 6 年前
        1
  •  4
  •   GCamel    6 年前

    如果您在DEV中,则需要复制Log4Net。配置到bin \调试;是否完成?必须将copy设置为in properties,或作为资源文件,以便稍后包含在安装程序中。再见谢谢你的投票。