首页 > 解决方案 > Log4Net 记录到控制台但不记录到文件

问题描述

我有 .netCore 控制台作业,我需要在其中启用日志记录

我已经配置了 Log4Net。下面是我的 app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
    <clear/>
    </connectionStrings>
  <appSettings>
        <add key="log4net.Config" value="log4net.config" />
  </appSettings>
</configuration>

Log4Net.config

<?xml version="1.0"?>
<log4net debug="false">
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <threshold value="INFO" />
    <file value="C:\Logs\SKUFeedLogs\APG.SKUFeedJob.log" />
    <immediateFlush value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <appendToFile value="true" />
    <maxSizeRollBackups value="100" />
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
    </layout>
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="RollingFileAppender" />
  </root>
</log4net>

以下是我的 Program.cs 中的代码

.ConfigureLogging(LoggerFactory =>
                  {
                      var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
                      Console.WriteLine(Assembly.GetEntryAssembly().Location);
                      Console.ReadLine();
                      XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
                      log4net.LogManager.GetLogger(typeof(Program));
                  });

当我这样做时,_logger.LogInformation(DateTime.Now.ToString());我确实在控制台/命令提示符中看到了信息。但是,没有任何内容写入“C:\Logs\SKUFeedLogs\APG.SKUFeedJob.log”的日志文件

运行项目时自动创建了日志文件,但没有写入任何内容。有人知道我错过了什么吗?

我找到了一些关于在 AssemblyInfo.cs 中包含代码的答案。但是,我的项目中没有

标签: .net-coreconsole-applicationlog4netlog4net-configuration

解决方案


推荐阅读