【问题标题】:How to write entries to Windows Event Viewer by log4net in WPF?如何通过 WPF 中的 log4net 将条目写入 Windows 事件查看器?
【发布时间】:2016-05-07 14:44:47
【问题描述】:

我读过this article. 和这个answer1SOanswer2SOanswer3SO

到目前为止我做了什么:

1.在 AssemblyInfo.cs 的最后一行声明:

    [assembly: log4net.Config.XmlConfigurator(Watch = true)] 

2。写在 app.config 中

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <log4net>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="ALL"/>
      <appender-ref ref="EventLogAppender"/>
    </root>
  </log4net>
</configuration>

3.我在处理程序中写的内容:

private void btn_Click(object sender, RoutedEventArgs e)
{
   XmlConfigurator.Configure();       
   ILog Log = 
   LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
   Log.Fatal("The exception occurred", new Exception("Hello World of event log")); 
}`

在完成所有这三个操作之后,我的窗口事件查看器中没有任何条目。请看我的窗口事件查看器:

【问题讨论】:

    标签: c# wpf logging log4net xmlconfigurator


    【解决方案1】:

    您的应用需要以管理员身份运行一次,以创建将日志分配到的事件源:请参阅 log4net 文档中的 "Why doesn't the EventLogAppender work?"

    【讨论】:

    • 谢谢!我是我电脑的管理员,但我会在星期一尝试以管理员权限运行我的程序。
    • @StepUp 您需要明确使用“以管理员身份运行”,而不仅仅是作为管理员组中的用户
    • 那是简单用户的操作不能被记录到窗口事件查看器?非管理员的操作无法记录到 Windows 事件查看器?
    • 不,它是 创建事件源 需要由“管理员”完成 - 之后,用户可以使用该事件源写入事件日志。
    • 那么是否可以在不运行“以管理员身份运行”的情况下写入事件查看器?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    相关资源
    最近更新 更多