c# - Log4Net。限制 RollingFileAppender 在 Windows 事件查看器中记录事件
问题描述
我们使用 Log4Net 2.0.8 版进行日志记录,它被配置为登录文件。RollingFileAppender 被配置为 appender。它将事件完美地记录到文件中,但我们发现它也记录到 Windows 事件日志中。我们想知道是否有可能以某种方式关闭记录到 Windows 事件日志
下面是Log4Net的配置
.net 4.7.1 是版本。
<log4net>
<root>
<level value="ALL" />
</root>
<logger name="zzzzzz
<level value="ALL" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="WarningAppender" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="NServiceBus">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="WarningAppender" />
<appender-ref ref="ErrorAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<encoding value="utf-8" />
<file value="C:\Logs\Product\\" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<rollingStyle value="Composite" />
<datePattern value="yyyy-MM-dd\\\\'Product.Error.txt'" />
<maximumFileSize value="5Mb" />
<maxSizeRollBackups value="-1" />
<!-- No limit on roll backs -->
<staticLogFileName value="false" />
<!-- Creates the folder for the day before logging for that day starts -->
<layout type="zzzzz.MyOrders.Utilities.Logging.Log4Net.ExtendedPatternLayout, zzzzzz.MyOrders.Utilities.Logging">
<conversionPattern value="Product.WebApi - %date [%thread] [%correlationId] %-5level - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<acceptOnMatch value="true" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
</log4net>
谢谢!
解决方案
我们找到了问题的答案,并认识到该问题是不正确的。所以我们将记录器的包装器封装在 nuget 包中,它包装了 log4net 和手写的“EventLogLogger”
包装器中的客户端代码看起来像
private void WriteLogMessageToLogs(LogMessageType logMessageType, LogMessage logMessage)
{
foreach (var loggingProvider in this.loggingProviders)
{
loggingProvider.AddLogEntry(logMessage, logMessageType);
}
}
很抱歉打扰所有与会者,Log4Net 不是这背后的人。
推荐阅读
- javascript - 创建一个支持函数的持久数据钩子
- vbscript - Adobe Illustrator 脚本
- c# - 如何根据其他 2 个属性的值设置 1 个属性的值?
- testing - jest.mock 和 jest.doMock 之间的区别
- scala - 在 uber jar 而不是单个子模块 jar 中构建 sbt 项目
- java - 使用 Volley android studio 发布 JSONObject 时出错
- java - 为什么Generetemap没有显示?
- python - 如何在没有基类的情况下混入 Python 类?
- .net - EF Core - 引入 FOREIGN KEY 约束可能会导致循环或多个级联路径
- python - Python将一些反斜杠加倍,同时保留其他反斜杠