c# - WPF 应用程序中的 Log4Net 设置

标签 c# wpf log4net log4net-configuration

我不敢相信我不得不问这个问题,但是这里...

我正在尝试在一个新的 WPF 应用程序中设置 log4net,但出于某种原因,它没有创建日志文件和记录任何内容,所以这是我到目前为止完成的步骤......

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

在 AssemblyInfo.cs 中:

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

在 app.config 中:

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

在 Log4Net.config 中:

<?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>

在 App.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.config ...

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

然后将我的记录器构造更改为...

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

...然而,这仍然没有任何结果,没有日志文件,但没有异常,代码似乎运行良好,除了似乎执行但没有结果的日志记录调用。

最佳答案

如果你在 DEV 中,你需要将 Log4Net.config 复制到 bin\debug 中;做还是不做?必须将副本设置为属性,或者作为资源文件稍后包含在安装程序中。再见;感谢您的投票。

关于c# - WPF 应用程序中的 Log4Net 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875761/

相关文章:

c# - 使用 Mysql 将我的 WPF 项目转换为 MVVM

c# - log4net - 仅在一天中的某些时间之间安排日志记录

c# - 内存是如何在int数组中分配的

c# - 子串分组字符

c# - 样式设置的工具提示不起作用

logging - Log4Net 配置文件中的 '%5rms' 是什么意思?

c# - log4net smtp appender 不发送电子邮件

c# - 在 OnActionExecuting 期间以不同方式处理 GET 和 POST

c# - 如何在编译时驱动 C#、C++ 或 Java 编译器计算 1+2+3+...+1000?

c# - 首次运行时和试用期结束后显示“应用程序注册”对话框