Laden...

Eigenen EventLog Bereich erstellen

Erstellt von Fabsen2102 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.712 Views
F
Fabsen2102 Themenstarter:in
58 Beiträge seit 2006
vor 14 Jahren
Eigenen EventLog Bereich erstellen

Hallo zusammen,

ich bin gerade dabei einen Windows-Dienst zu schreiben. Nun würde ich gerne Meldungen in das Eventlog schreiben.
Ich hatte dabei die Idee, dass ich in einen eigenen "Bereich" schreibe.
Genauso wie es den Punkt Anwendungen, System, etc gibt, würde ich gerne einen eigenen Bereich (z.B.: "WindowsDienst") anlegen.

Ich habe es geschafft diesen Bereich anzulegen. Jedoch erscheinen alle Meldungen, die ich dort hineinschreibe auch unter dem Bereich Anwendung.

Was mache ich falsch?

hier mein Code:


if (!EventLog.SourceExists("iMSBatchservice"))
{
   EventLog.CreateEventSource("iMSBatchservice", "iMS Batchservice");
}

log = new EventLog();
log.Source = "iMSBatchservice";

log.WriteEntry("iMS Batchservice started.", EventLogEntryType.SuccessAudit );

Der Bereich der entsteht heißt "iMS Batchservice", wie gewollt.

Vielen Dank für eure Hilfe!

2.223 Beiträge seit 2005
vor 14 Jahren

Hallo Fabsen2102,

schreibst du vielleicht irgendwo noch wo anders ins eventlog?

ich kann bei deinem Code kein Problem erkennen so das er das machen sollte wozu er geschrieben wurde.

Viele Grüße
BlackCoin

F
Fabsen2102 Themenstarter:in
58 Beiträge seit 2006
vor 14 Jahren

Hi!

Nein, also nicht das ich wüsste. Ich bin etwas ratlos. Wenn ich folgendes ändere:

EventLog.DeleteEventSource("iMS Batch");
            if (!EventLog.SourceExists("iMS Batch"))
            {
                EventLog.CreateEventSource("iMS Batch", "iMSBatchLog");
            }

Dann wird zwar ein neuer "Ordner" "iMSBatchLog" angelegt, aber der neue Eintrag landet nur noch unter Anwendung.

Kann ich denn irgendwie global "aufräumen". Ich habe gesehen, dass unter
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog] alle "Ordner" abgebildet werden.
Allerdings ist das "EventMessageFile" immer das selbe. Nämlich aus dem .NET-Framework "EventLogMessages.dll".

So ganz verstehe ich den Aufbau der registry nicht.

Noch eine Idee?

Danke und Gruß

Fabian

F
Fabsen2102 Themenstarter:in
58 Beiträge seit 2006
vor 14 Jahren

So, ich weiß nicht genau warum, aber jetzt klappt es.

ich habe unter dem oben erwähnten registry-Eintrag alles gelöscht was von mir bzw dem programm war und mein Code sieht jetzt wie folgt aus:


if (!EventLog.SourceExists("iMS"))
            {
                EventLog.CreateEventSource("iMS", "iMSBatchLog");
            }

            log = new EventLog();
            log.Source = "iMSBatchLog";

Jetzt schreibt er nur noch in iMSBatchLog.

Trotzdem Danke für die Mühen!

Fabian

2.223 Beiträge seit 2005
vor 14 Jahren

Hmm komisch, dass das jetzt klappt


log.Source = "iMSBatchLog"

denn eigentlich müßte dort doch die Source 'iMS' angegeben werden

mfg

F
Fabsen2102 Themenstarter:in
58 Beiträge seit 2006
vor 14 Jahren

Ja, dachte ich auch. habe aber einfach mal probiert.

What shells..

2.223 Beiträge seit 2005
vor 14 Jahren

Ich habe dein erstes beispiel mal auf einer VM getestet,

und es funktioniert so, wie es funktionieren soll.

ich vermute mal das auf deinem System irgendetwas kaputt konfiguriert ist

Herzliche Grüße
BlackCoin

F
Fabsen2102 Themenstarter:in
58 Beiträge seit 2006
vor 14 Jahren

Ja, das mit dem "kaputt konfiguriert" habe ich mir auch schon gedacht. Deswegen auch die Frage mit "global aufräumen".

Jetzt weiß ich ja wie es gehen sollte 😃

Danke!