首页 文章

在“应用程序和服务日志”下为自定义区域创建一个位置并将事件写入

提问于
浏览
0

在Windows 7和Server 2008事件查看器中,有一个用于...的文件夹

应用程序和服务日志

我想创建一个记录应用程序中所有事件的地方 . 你如何在这个领域创建一个日志?从事件查看器中,我看到的只是“创建视图”,它似乎只是一种在特定日志中创建事件的过滤视图的方法 .

一旦创建了它,你如何写它的事件?

例如,如果我的日志名为'StackApp',您会使用...

EventLog.WriteEntry('StackApp', message);

谢谢!

1 回答

  • 2

    如果您的EventLog已创建,那么您可以执行 EventLog.WriteEntry("StackApp", message);

    //create a log
    string source;
    string logName;
    string machineName;//use "." for this machine
    
    if (!EventLog.Exists(logName, machineName))
    {
        EventSourceCreationData creationData = new EventSourceCreationData(source, name);
        EventLog.CreateEventSource(creationData);
    }
    

    日志上的更多操作:

    //find your log in the windows EventLog by name
    EventLog log = null;
    foreach (EventLog eventLog in EventLog.GetEventLogs())
    {
        if (string.Compare(eventLog.Log, logName, true) == 0)
        {
            log = eventLog;
            break;
        }
    }
    
    //modify log settings
    log.ModifyOverflowPolicy(OverflowAction.OverwriteAsNeeded, 7);
    log.MaximumKilobytes = MaxLogSize;
    
    //write to event to log
    EventLog.WriteEntry(source, message);
    
    //more advance writing to log instance
    long instanceId;
    int categoryId;;
    EventLogEntryType entryType;
    byte[] binaryData;
    object[] values;
    
    EventInstance eventInstance = new EventInstance(instanceId, categoryId, entryType);
    log.WriteEvent(eventInstance, binaryData, values);
    

相关问题