.net 事件日志文件已满

.net 事件日志文件已满,.net,event-log,.net,Event Log,在尝试从控制台应用程序写入事件日志时,我一直收到此错误消息。 我是这样写的 public static void WriteToEventLog(Exception ex) { string mySource = "Export Task"; if (!EventLog.SourceExists(mySource)) EventLog.CreateEventSource(mySource, "Application");

在尝试从控制台应用程序写入事件日志时,我一直收到此错误消息。 我是这样写的

public static void WriteToEventLog(Exception ex)
    {
        string mySource = "Export Task";
        if (!EventLog.SourceExists(mySource))
            EventLog.CreateEventSource(mySource, "Application");

        EventLog myLog = new EventLog();
        myLog.Source = mySource;

        myLog.WriteEntry(ex.ToString());

    }
有人知道为什么会发生这种情况,以及我如何解决它吗?

对我来说,这听起来像:

  • 这是因为事件日志已满
  • 通过清空事件日志来修复它

如果不是这样,请编辑您的问题,明确您认为事件日志未满,以及您是如何得出此结论的。

自定义事件日志源的默认大小为512k。这已经咬了我好几次了。您可以覆盖它,使其大小更合理(特别是如果您正在编写用于调试目的的信息日志)。

最可能的情况是,您使用的是默认应用程序日志,该日志通常由您机器上的几乎任何应用程序写入(就像您编写的应用程序一样)。随着时间的推移,事件日志将填满并达到最大值

因此,我的建议是创建一个,而不是重用“应用程序”日志。这样,您可以捕获此异常(这是一个有效的情况),并通过调用&重试写入事件操作来处理它。还要检查是否正在淹没事件日志,负责任地记录


另一方面,还可以更改应用程序日志的事件日志属性。(事件查看器,在应用程序日志节点上显示属性)-您可以指定日志的最大大小(512 KB),以及如何处理包装,例如,在达到最大大小时覆盖超过7天的条目。(这似乎是我的WinXP机器上的默认设置)。但你必须在每台机器上都这么做。。。但是,如果打开事件查看器,右键单击有问题的事件日志并选择“属性”,您可以看到事件日志的大小,您可以尝试。您可以将其放大或更改下面的选项,使其显示为“根据需要覆盖事件”。

我在使用Visual C 2010 Express的Windows XP上遇到了相同的错误,这就是我的工作原理:

转到开始->控制面板->管理工具->事件查看器

然后选择操作->属性并选择“根据需要覆盖事件”


您还可以增加日志的最大大小。

您是否尝试过以下代码

log.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded, log.MinimumRetentionDays);

我想他可能希望有一种方法可以通过编程方式清空它,而不是通过事件查看器手动清空。另一种解决方案是增加事件日志的容量。@Vinko:鉴于“有人知道为什么会发生这种情况吗?”我不确定。。。肯定需要更多的信息。可以找到它满的原因。。在日志文件中。看看是什么占据了这么多的条目以及它们是关于什么的。。这是根本原因。请参阅本页: