c# - log4net-RollingFileAppender-XmlLayoutSchemaLog4j 未登录.Net Core 3
问题描述
我正在使用 .Net Core 3 预览版。Visual Studio 2017。我尝试通过配置文件和代码设置 log4net 的配置,正在创建该文件,但它没有记录任何消息。
我的配置文件:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
<log4net>
<root>
<level value="All"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="ColoredConsoleAppender"/>
<appender-ref ref="DebugAppender" />
</root>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender">
<immediateFlush value="true" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file type="log4net.Util.PatternString" value="LogFile.xml" />
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
<locationInfo value="true" />
</layout>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
</layout>
</appender>
</log4net>
</configuration>
带有 XmlLayoutSchemaLog4j 的 RollingFileAppnder 不起作用。RollingFileAppnder 和其他 Fileappender 工作的其他参数。我已经下载了一个示例并尝试在代码中将其配置为 XmlLayoutSchemaLog4j:
Hierarchy hierarchy = (Hierarchy)logRepository;
var patternLayout = new XmlLayoutSchemaLog4j();
patternLayout.LocationInfo = true;
patternLayout.ActivateOptions();
var roller = new RollingFileAppender
{
AppendToFile = true,
MaximumFileSize = "2MB",
File = "logger.xml",
PreserveLogFileNameExtension = true,
MaxSizeRollBackups = 10,
RollingStyle = RollingFileAppender.RollingMode.Size,
Layout = patternLayout
};
roller.ActivateOptions();
hierarchy.Root.AddAppender(roller);
hierarchy.Root.Level = Level.Info;
hierarchy.Configured = true;
我没有从 log4net 得到调试错误。任何想法?
解决方案
我不确定您是如何在 Startup.cs 和 Programs.cs 中初始化 Log4Net 但请使用以下示例作为参考。另外,也许您还需要像这里一样对 Log4Net 配置文件进行一些清理和移动代码配置
推荐阅读
- ruby-on-rails - 在 Rails 6 应用程序中用 ActionText 替换 Ckeditor
- javascript - 无法从 json 对象获取数据
- python - 从线程发射时,Flask Socket.io 不起作用
- angular - 表单验证不适用于角度
- python - 找到特定 x 值的梯度
- node.js - 在没有前端的heroku(或aws)中“永远”运行节点脚本?
- javascript - React 应用程序未按预期对更改做出反应。为什么?
- c# - 下一个怎么计算?
- odoo - Odoo 12:KeyError:'ir.values'
- swift - 在 Swift 中产生不同频率的声音