事件日志文件已满

时间:2009-08-19 14:10:03

标签: .net event-log

尝试从控制台应用程序写入事件日志时,我不断收到此错误消息。 这是我写给它的方式

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());

    }

有谁知道为什么会发生这种情况以及如何解决这个问题?

6 个答案:

答案 0 :(得分:10)

对我来说听起来像是:

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

如果不是这种情况,请修改您的问题,以明确您认为事件日志不是已满,以及您是如何得出这个结论的。

答案 1 :(得分:8)

我在使用Visual C#2010 Express的Windows XP上遇到了同样的错误,这对我有用:

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

然后选择Action-> Properties并选择“根据需要覆盖事件”

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

答案 2 :(得分:6)

如果您打开事件查看器,请右键单击相关事件日志,然后选择“属性”,您可以看到事件日志大小。您可以将其放大或更改其下方的选项,以说“根据需要覆盖事件”。

答案 3 :(得分:3)

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

所以我的建议是创建一个 new custom event log ,而不是重复使用“应用程序”日志。这样你就可以捕获这个异常(这是一个有效的例子)并通过调用 EventLog.Clear &来处理它。重试写事件操作。还要检查您是否充斥着事件日志,负责任地记录。

另一方面,您还可以更改应用程序日志的事件日志属性。 (事件查看器,在应用程序日志节点上显示属性) - 您可以指定日志的最大大小(512 KB)以及如何处理包装,例如达到最大尺寸时,覆盖超过7天的条目。 (这似乎是我的WinXP机器上的默认设置)。但你必须在每台机器上都这样做......但是你可以尝试一下

答案 4 :(得分:2)

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

答案 5 :(得分:0)

您是否尝试过以下代码?

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