Ich erstelle eine ASP.NET-Anwendung, die einige Dinge in Windows EventLog protokolliert. Dazu muss zuerst eine Ereignisquelle erstellt werden. Dies erfordert Administratorrechte, sodass ich dies in der ASP.NET-App nicht tun kann.
Gibt es eine mit Windows gebündelte Befehlszeilenanwendung, die eine Ereignisprotokollquelle erstellen kann, oder muss ich meine eigene einführen?
quelle
MYEVENTSOURCE
bereits vorhanden ist und mit etwas anderem als eventcreate erstellt wurdeProbieren Sie die EventLog-Cmdlets von PowerShell 2.0 aus
Wirf dies für PowerShell 2.0 und höher ein:
Führen Sie
New-EventLog
einmal die Ereignisquelle zu registrieren:Verwenden Sie dann
Write-EventLog
, um in das Protokoll zu schreiben:quelle
New-EventLog
-ing undRemove-EventLog
‚-ing hin und her könnte ein Problem auftritt , wennSource
registriert, aber nicht schreiben zu spezifiziertLog
. Ein Neustart des Computers hilft dabei. Ein weiterer Tipp: Sie können hier sehen, was mit Ihren Ereignisprotokollen mit regedit los ist:[Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\]
Sie können Windows PowerShell auch mit dem folgenden Befehl verwenden:
Stellen Sie sicher, dass die Quelle nicht vorhanden ist, bevor Sie CreateEventSource aufrufen. Andernfalls wird eine Ausnahme ausgelöst.
Für mehr Information:
quelle
Mit eventcreate2 können Sie benutzerdefinierte Protokolle erstellen, bei eventcreate nicht.
quelle
Wenn jemand interessiert ist, ist es auch möglich, eine Ereignisquelle manuell zu erstellen, indem einige Registrierungswerte hinzugefügt werden.
Speichern Sie die folgenden Zeilen als REG-Datei und importieren Sie sie durch Doppelklick in die Registrierung:
Dadurch wird eine Ereignisquelle mit dem Namen erstellt
YOUR_EVENT_SOURCE_NAME_GOES_HERE
.quelle
Oder verwenden Sie einfach den Befehlszeilenbefehl:
Eventcreate
quelle
Die Cmd / Batch-Version funktioniert jedoch. Sie können auf ein Problem stoßen, wenn Sie eine Ereignis-ID definieren möchten, die höher als 1000 ist. Für die Ereigniserstellung mit einer Ereignis-ID von 1000+ verwende ich Powershell wie folgt:
Stichprobe:
quelle
Sie können Ihr eigenes benutzerdefiniertes Ereignis mithilfe von diagnostics.Event-Protokollklasse erstellen. Öffnen Sie eine Windows-Anwendung und klicken Sie auf eine Schaltfläche, um den folgenden Code auszuführen.
"MyNewLog" bezeichnet den Namen, den Sie Ihrer Anmeldeereignisanzeige geben möchten.
Weitere Informationen finden Sie unter diesem Link [ http://msdn.microsoft.com/en-in/library/49dwckkz%28v=vs.90%29.aspx]
quelle