Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Windows Eventlog nutzen
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

Windows Eventlog nutzen

beantworten | zitieren | melden

verwendetes Datenbanksystem: <Windows Eventlog>

Hallo Leute,

meine frage ist, ob ich daten in dem eventlog von windows speichern kann bzw eine neue evt-datei anlegen kann.
Und muss ich bei XP und Vista was beachten von der syntax her ?

gruß
radix
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

Daten ins Eventlog speichern ist kein Problem. Es gibt etwa die Klasse EventLog aus dem Namensraum System.Diagnostic, mit der du Einträge bearbeiten/erstellen kannst.
Neulich im Computerkurs:
Mein Computer kennt Else nicht!
[URL]XING-Profil[/URL]
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

Danke für die schnelle Antwort, werde es mir mal ansehen
ich wars nicht !
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

So habe es geschafft meine Message in den Eventlog zu speichern, aber wie kann ich dort die Kategorie ändern? Wenn ich einen Eintrag mache, steht da immer Kategorie :
Keine

Gruß radix
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

Also es gibt mehrere Überladungen der WriteEntry()-Funktion, darunter mehrere die es erlauben eine Kategorie zu übergeben. Die sind aber anwendungsspezifisch, d.h. du musst sie selbst definieren.
Neulich im Computerkurs:
Mein Computer kennt Else nicht!
[URL]XING-Profil[/URL]
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

es gibt ja zb den:

System.Diagnostics.EventLogEntryType.Error

um den typ festzulegen aber sowas find ich in keinsterweise für die category.
auch noch bei msdn, oder ich seh den wald vor lauter bäumen nicht :D
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

Du verwechelst da was: Der EventLogTypeEntry ist der Eintragstyp, also Fehler, Information, Erfolg etc.

Unter der Kategorie kannst du deine Eventlog-Einträge selbst feiner gliedern, etwa unterschiedliche Fehlerklassen anfügen und je nach Fehlerklasse bestimmte Meldungen/Texte mit reinschreiben. Die Unterkategorie ist ja in der WriteEntry()-Methode auch ein einfacher Int16.

Wenn du dir mal deine Ereignisanzeige am PC ansieht für einen bestimmten Dienst (etwa SQL-Server), siehst auch das da nur Zahlen stehen, aber unterschiedliche für unterschiedliche Ereignisse.
Neulich im Computerkurs:
Mein Computer kennt Else nicht!
[URL]XING-Profil[/URL]
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Hallo radix,
Zitat
um den typ festzulegen aber sowas find ich in keinsterweise für die category.

Um die Kategorie anzugeben, musst Du die Nicht-statischen Überladungen zu EventLog.WriteEntry verwenden, im speziellen dann z.b. folgende Überladung:
MSDN - EventLog.WriteEntry (spez. Überladung)
Im Beispiel der MSDN findest Du auch ein konkretes Beispiel (nach unten scrollen).

Aber die Kategorie ist eine positive Integer-Ganzzahl, ich weiß nicht, ob das an der Übersicht im Ereignisprotokoll eine Verbesserung bringt?

Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

aso kla nu versteh ich hab auch nun den passenden link bei msdn gefunden:

WriteEntry()

danke für die anregung



@norman_timo
jow super danke werd mich da mal umsehen :-))



Gruß Kevin
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von radix am .
ich wars nicht !
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

eine frage sit dann doch noch offen, als kategorie kann ich ja nur Int-Werte angeben. Ich find im ganzen www keinen hinweis dafür das man auch strings anzeigen kann .


EventLog.WriteEntry (String, String, EventLogEntryType, Int32, Int16)
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Michbeck1983
myCSharp.de - Member

Avatar #avatar-2965.gif


Dabei seit:
Beiträge: 264
Herkunft: Augsburg

beantworten | zitieren | melden

Kannst du auch nicht. Die Kategorie ist reserviert für Int16-Werte. Nur wenn du keine Kategorie angibst, erscheint im Eventlog der Eintrag "Keine", ansonsten sind das Zahlen.
Neulich im Computerkurs:
Mein Computer kennt Else nicht!
[URL]XING-Profil[/URL]
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

hm ok dann muss ich mich, glaub ich, geschlagen geben :D
hoch lebe windows .... :-)

danke euch für die antworten

Gruß radix
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

hm, also irgendwie muss es doch möglich sein, denn ich habe mir eben mein Eventlog angeschaut, und sind durchauchs string in der Kategorie vorhanden.

Also irgendwie muss es doch möglich sein?
Attachments
lg Lion
private Nachricht | Beiträge des Benutzers
norman_timo
myCSharp.de - Member

Avatar #avatar-1775.jpeg


Dabei seit:
Beiträge: 4591
Herkunft: Wald-Michelbach (Odw)

beantworten | zitieren | melden

Hallo Lion1984,

interessant, hab ich noch nie gesehen. Ist das wirklich die Original-Ereignisanzeige von Windows?

Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

Hallo norman_timo,

Das is die unter Verwaltung, Ereignisanzeige, Anwendung.
Also nehme ich mal an ja, wie gesagt, ich habe das Eventlog Anwendung hergenommen, da ich, wenn, nur dieses nutze oder ein eigenes mache.

Ich vermute mal, wenn das in der Anwendung funktioniert, sollte es auch mit einem eigenen Eventlog funktionieren.

Lion

€dit:
ich habe eben noch auf einem anderen Computer nachgesehen, welcher nicht durch irgendwelchen Spielereilen eventuell "verschmutzt" wurde, hier handelt es sich um einen DB Server mit MS SQL 2005 auf Win Serv. 2003. Auch hier gibt es Kategorieren mit einer Bezeichnung (siehe Bild).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lion1984 am .
Attachments
lg Lion
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

Eventuell wäre das hier interessant:

http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.vb/2008-02/msg00090.html
lg Lion
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

Zitat von Lion1984
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.vb/2008-02/msg00090.html

Es ist genauso wie da steht: Der Eventlog übersetzt Kategorien usw. anhand einer registrierten Message-Datei.

Interessant in der Ausgangsfrage war noch, ob man eigene evt's anlegen kann. Ja - man muss die aber in der Registry direkt eintragen. Eine API-gibt's dafür nicht. Der Ereignisdienst übernimmt die Information automatisch. Für's Löschen allerdings muss man neu booten.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ujr am .
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

Zitat
Es ist genauso wie da steht: Der Eventlog übersetzt Kategorien usw. anhand einer registrierten Message-Datei.
Und somit ist es möglich, eine Kategorie zu benennen, auf das es ja hinausläuft, zwar mit Umweg einer Datei, aber es funktioniert.
Zitat
Ja - man muss die aber in der Registry direkt eintragen.
Hierfür gäbe es:

EventLog.CreateEventSource(string, string);

Damit erstelle ich mir immer, wenn ich es brauche, eigene EventLogs bzw. eine "eigene Rubrik". (wie System, Anwendungen und Sicherheit).

Lion
lg Lion
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

Ich denke mal die strings in den kategorien sind enums von windows festgelegt.

ich habe wieder mal eine frage und zwar hab ich nu mein script soweit : write , read , delete

nach dem ich meine evt-datei gelöscht hatte kann ich nun keine mehr erstellen mit dem befehl :

EventLog.CreateEventSource(string, string);

es kommt immer die meldung .... Die Quelle ist schon auf ihren PC vorhanden ... oder so obwohl alles von der source gelöscht ist.

und die einträge die ich machen will schreibt er in eine andere evt-datei hinein ?!


 try {
                if (!System.Diagnostics.EventLog.SourceExists("DebugMonitor")) {
                    //System.Diagnostics.EventLog.CreateEventSource("DebugMonitor", "Debug");

                    System.Diagnostics.EventSourceCreationData creationData = new System.Diagnostics.EventSourceCreationData("DebugMonitor", "Debug");

                    System.Diagnostics.EventLog.CreateEventSource(creationData);

                    //Console.WriteLine("CreatingEventSource");
                }
                for (int i = 0; i < messages.Count; i++) {
                    if (messages[i].ToString().IndexOf(":0:") > -1 || messages[i].ToString().IndexOf(":1:") > -1) {
                        System.Diagnostics.EventLog.WriteEntry("DebugMonitor", messages[i].ToString(), System.Diagnostics.EventLogEntryType.Information, 1, 2);
                    }
                    else if (messages[i].ToString().IndexOf(":3:") > -1) {
                        System.Diagnostics.EventLog.WriteEntry("DebugMonitor", messages[i].ToString(), System.Diagnostics.EventLogEntryType.Error, 1, 2);
                    }
                    else {
                        System.Diagnostics.EventLog.WriteEntry("DebugMonitor", messages[i].ToString(), System.Diagnostics.EventLogEntryType.Warning, 1, 2);
                    }
                }
            }
            catch (System.Exception ex) {
                System.Windows.Forms.MessageBox.Show(ex.Message, "Fehler", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
            }

gruß radix
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von radix am .
ich wars nicht !
private Nachricht | Beiträge des Benutzers
radix
myCSharp.de - Member



Dabei seit:
Beiträge: 20
Herkunft: Goch

Themenstarter:

beantworten | zitieren | melden

niemand eine Antwort :-( ?
ich wars nicht !
private Nachricht | Beiträge des Benutzers
Lion1984
myCSharp.de - Member



Dabei seit:
Beiträge: 782
Herkunft: Österreich

beantworten | zitieren | melden

Hallo,

ich habe die Erfahrung gemacht, dass Delete nicht immer gut funktioniert, wurde oben glaub ich schon erwähnt.

Schau doch mal in die reg ob dort deine Eventdatei noch vorhanden ist, wenn ja lösch sie mal von dort, anschließend müßte Create wieder gehen.

Lion
lg Lion
private Nachricht | Beiträge des Benutzers