.net-core - 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 中包含代码的答案。但是,我的项目中没有
解决方案
推荐阅读
- azure-active-directory - 为什么“可以在 Azure 门户中将成员分配为组所有者的所有者”设置仅在某些 Azure AD 租户中可用?
- php - 如何编写查询以获取 laravel 中的记录?使用角色
- c++ - 如何从向量中获取子向量?
- javascript - Material-UI 中依赖于道具的切换颜色
- subscription - IoT 中心 iothubconnection 可能无法正常运行,因为它未处于活动状态
- linux - Ubuntu 无法升级到 20.04.1 LTS
- gitlab - Gitlab 新文件模板
- c# - 在 JSON 文件中查找 JArray/JObject 元素
- powershell - 在具有条件的数组值中获取数组
- python - 如何获得以下 python 代码来输出 worldmaps.info (似乎这个问题已得到回答,但对我不起作用)