- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个控制台应用程序,我尝试使用 EventLogAppender
通过 log4net 登录到 Windows 事件日志。我还有两个 RollingFileAppender
,但它们工作正常。
RollingFileAppender
位于根记录器中,配置如下:
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderInfo" />
<appender-ref ref="RollingFileAppenderDebug" />
</root>
EventLogAppender
位于名为 EventLogger
的记录器中,配置如下:
<logger Name="EventLogger">
<level value="INFO" />
<appender-ref ref="EventLogAppenderInfo"/>
<appender-ref ref="EventLogAppenderError"/>
</logger>
这样 EventLogger
从根继承附加程序。如果我用 EventLogger
记录一些东西,它也会被写入日志文件。我之所以这样做,是因为我不想将所有信息条目(仅包含重要信息条目)作为垃圾邮件发送到 Windows 事件日志中。但我也想记录每个错误。
这是我获取记录器的方式:
private static readonly log4net.ILog eventLog = log4net.LogManager.GetLogger("EventLogger");
问题
像这样配置,使用eventlog
对象记录任何级别的东西,log4net不写入Windows事件日志,但它写入日志文件,所以root中的附加程序是工作。
如果我将 EventLogAppender
放在根目录下,它们可以正常工作,但它们也会记录我不想记录到事件日志中的 INFO 级别条目。
我不认为这会是权限问题,源已经创建并且可以访问。
这是两个 EventLogAppender
,如果有人好奇的话:
<appender name="EventLogAppenderInfo" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<appender name="EventLogAppenderError" type="log4net.Appender.EventLogAppender">
<applicationName value="ApplicationName" />
<layout type="log4net.Layout.PatternLayout">
<IgnoresException value="False"/>
<conversionPattern value="%date{yyyy.MM.dd HH:mm:ss} [%thread] %-5level %logger [%property{NDC}] - %message%newline%exception" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
<levelMax value="FATAL" />
</filter>
</appender>
我想不出为什么 log4net 这样做,如果有人有解决方案,将不胜感激!
干杯!
最佳答案
我认为这是一个区分大小写的问题。
<logger Name="EventLogger">
应该是
<logger name="EventLogger">
关于c# - Log4net EventLogAppender 仅适用于根记录器,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46347744/
添加了一个EventLogAppender,如下所示:
有没有办法将每条消息指定的 eventid 记录到 Windows 事件日志中?我正在使用 log4net v 1.2.10。 最佳答案 根据我在 EventLogAppender 源代码中看到的内容
以下配置没有任何 react 。 App.config
我有一个控制台应用程序,我尝试使用 EventLogAppender 通过 log4net 登录到 Windows 事件日志。我还有两个 RollingFileAppender,但它们工作正常。 Ro
此配置应该使我的日志条目最终出现在自定义日志中,对吧?但它最终出现在应用程序日志中。我的应用程序以管理员身份运行。运行我的应用程序后,我可以确认日志和事件源是使用 EventLog.Exists("M
如果您查看 Windows 事件查看器,您会看到一些具有任务类别的任务,例如 Gatherer 和 Fireing Agent,但是如果您使用 log4net 来记录事件,您只能在 category
我有一个应用程序,包含多个部分。 我一直在使用 log4net 来记录事件,我希望这些事件有一个与它们来自的应用程序中的 WHERE 相匹配的 SOURCE(您知道“SOURCE”暗示)。所以我在“应
您好,我在 Windows7 上遇到 EventLogAppender 问题。配置 EventLogAppender 的代码是: var elAppender = new EventLo
我已经为 Asp.Net 2.0 配置了 log4Net EventLogAppender。但是它不记录任何内容。我的 Web.Config 中有以下内容。
我是一名优秀的程序员,十分优秀!