c#事件日志是否完整

时间:2011-06-16 12:50:46

标签: c#

如何知道应用程序事件日志是否已满或没有。有任何选项可以清除应用程序事件日志中的所有事件。我的代码是

 EventLog log = new EventLog("Application");
            log.Source = "Voting Editor Tool";
            log.WriteEntry(ex.Message);

3 个答案:

答案 0 :(得分:4)

您可以尝试抓住

try
{
    EventLog log = new EventLog("Application");
    log.Source = "Voting Editor Tool";
    log.WriteEntry(ex.Message);
}
catch (Win32Exception w32ex)
{
    // full
}

清除事件日志使用

log.clear();

来自文档的引用。

  

事件日志设置的最大大小决定了它们可以包含的条目数。当事件日志已满时,它将停止记录新事件信息或开始覆盖先前的条目。如果事件记录停止,您可以使用此方法清除现有条目的日志,并允许它再次开始记录事件。您必须具有日志所在的计算机的管理员权限才能清除事件日志条目。

答案 1 :(得分:1)

您可以转到事件查看器并指定日志是循环的,因此旧条目将根据需要被新的条目吃掉。

我确信您可以在运行安装脚本时指定此项,该脚本会为您的应用程序创建新的事件日志。

答案 2 :(得分:1)

为了避免这种情况,我们需要将“OverflowAction”Action属性设置为“OverwriteAsNeeded”或“OverwriteOlder” 如下图所示:

enter code here

EventLog eventLog = new EventLog();                    
eventLog.Source = "ViewImagePDF";
if (eventLog.OverflowAction != OverflowAction.OverwriteAsNeeded)
{
    eventLog.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded, 1);
}
eventLog.WriteEntry("This is sample information", EventLogEntryType.Information); 

请关注LINK 谢谢, 希狄。