Probleme mit der class EventLog

29/12/2007 - 00:32 von Ingo Manthey | Report spam
Hallo NG,
ich habe eine kleine classe geschrieben, mit der ich Meldungen in den
eventlog schreiben möchte.
public void Initialize(EventLogName logName)
{
evtApplication = GetEventLog(logName);
}

private EventLog GetEventLog(EventLogName evlName, string machine)
{
EventLog[] logs = EventLog.GetEventLogs(machine);
foreach (EventLog evt in logs)
if (evt.Log == Enum.GetName(typeof(EventLogName), evlName))
return evt;
return null;

}

private EventLog GetEventLog(EventLogName evlName)
{
return GetEventLog(evlName, Environment.MachineName);

}

public void EventWrite(string message, EventLogEntryType entryType,
short category)
{
try
{
if (evtApplication != null)
evtApplication.WriteEntry(message, entryType, category);
}
catch (Exception ex)
{
MaStdMessages.ShowException(ex);
}

}

wenn ich nun einen event mit der Methode EventWrite schreiben möchte,
bekomme ich eine ArgumentException. Ich habe nachgelesen und denke es liegt
daran, das ich keine Source eingetragen habe.

Nun mein Problem. Wie erstelle ich eine neue Source ? Ich möchte das
Programm unter Vista einsetzten und wenn ich
CreateEventSource aufrufe bekomme ich Probleme mit den rechten. Wie kann
ich das lösen?


Danke für jeden Tipp.

Ingo
 

Lesen sie die antworten

#1 Frank Dzaebel
29/12/2007 - 07:57 | Warnen spam
Hallo Ingo,

Nun mein Problem. Wie erstelle ich eine neue Source? Ich möchte das
Programm unter Vista einsetzten und wenn ich
CreateEventSource aufrufe bekomme ich Probleme mit den Rechten.



Vollkommen richtig. Es ist anzuraten, für das Erstellen einer neuen
EventLog-Quelle entweder CreateEventSource oder den
EventLogInstaller "wàhrend der Installation" zu benutzen.
Hintergrund ist, Du benötigst Administratorrechte für den
Computer, um eine neue Ereignisquelle zu erstellen.

[EventLogInstaller-Klasse (System.Diagnostics)]
http://msdn2.microsoft.com/de-de/li...ginstaller(VS.80).aspx

Wenn Du Admin-Rechte hàttest, würde das sogar
schon automatisch bei WriteEvent passieren, der
ggf. CreateEventSource selbsttàtig aufrufen würde.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen