尝试从控制台应用程序写入事件日志时,我不断收到此错误消息。 这是我写给它的方式
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());
}
有谁知道为什么会发生这种情况以及如何解决这个问题?
答案 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);