создание места и запись событий в пользовательскую область в разделе «Журналы приложений и служб» - PullRequest
0 голосов
/ 30 июня 2011

В средстве просмотра событий Windows 7 и Server 2008 есть папка для ...

Журналы приложений и служб

Я хочу создать место, где регистрируются все события из моего приложения.,Как создать журнал в этой области?В средстве просмотра событий все, что я вижу, это «Создать представление», которое, по-видимому, является просто способом создания отфильтрованного представления событий в определенном журнале.

Как только это создано, как вы пишете события в него?

Например, если мой журнал называется StackApp, вы бы просто использовали ...

EventLog.WriteEntry('StackApp', message);

Спасибо!

1 Ответ

2 голосов
/ 30 июня 2011

если ваш 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);
...