Diese Konfiguration sollte dazu führen, dass meine Protokolleinträge in einem benutzerdefinierten Protokoll landen, richtig? Aber es endet im Anwendungsprotokoll. Meine App läuft als Administrator. Nachdem ich meine App ausgeführt habe, kann ich bestätigen, dass die Protokoll- und Ereignisquelle mit EventLog.Exists("MyLog")
und EventLog.SourceExists("MyApplication")
erstellt wurde.
Bearbeiten: Ich habe herausgefunden, was das Problem war, aber ich kann meine Frage nicht "selbst beantworten", bis 8h vergangen ist.
Ich habe das Problem herausgefunden.
Aktualisieren in der Ereignisansicht zeigt keine neuen Protokolle an. Ich musste die Ereignisanzeige neu starten, um meine benutzerdefinierten Protokolle zu sehen, die ich erstellt habe.
Die meisten meiner Protokolleinträge wurden im Anwendungsprotokoll gespeichert, obwohl ich einen Protokollnamen angegeben habe. Meine Schlussfolgerung ist, dass ich wahrscheinlich irgendwann heute früh in das Protokoll geschrieben habe, indem ich den gleichen Quellennamen verwendet habe, aber ohne einen Log-Namen, so dass es "feststeckt". Ändern des Quellennamens und starten von Anfang an das Problem behoben.
Ich hatte das selbe Problem, bei dem log4net mein neues Protokoll erstellt hat, aber Meldungen wurden im Application
Protokoll protokolliert. Das Neustarten der Ereignisanzeige funktionierte nicht, aber laut dieser Antwort wurde das Problem durch einen Neustart meines Computers behoben und Nachrichten wurden protokolliert in das neue Protokoll wie erwartet.
Aaah, Eventlogs, ich hasse sie so sehr ...
Ist die Ereignisquelle Ihrer App in Ihrem Protokoll registriert? Wenn nicht, wird alles, was Sie damit schreiben, im Anwendungsprotokoll gespeichert. Sie müssen es während der Installation oder manuell über System.Diagnostics.EventLog.CreateEventSource () registrieren (z. B. dieses Ссылка )
Achten Sie auf Benennungsprobleme!
Versuchen Sie, <param name="LogName" value="MyLog" />
anstelle von <logName value="MyLog"/>