Je crée une application ASP.NET qui enregistre des éléments dans Windows EventLog. Pour ce faire, il faut d'abord créer une source d'événements. Cela nécessite des privilèges administratifs, donc je ne peux pas le faire dans l'application ASP.NET.
Existe-t-il une application de ligne de commande fournie avec Windows pouvant créer une source de journal des événements ou dois-je déployer la mienne?
Un exemple:
_eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
_
Cela créera un nouvel événement source nommé MYEVENTSOURCE
sous APPLICATION
événement log en tant que INFORMATION
événement tapez .
Je pense que cet utilitaire est inclus uniquement à partir de XP.
Windows IT Pro: Conseil JSI 5487. Windows XP inclut l'utilitaire EventCreate pour la création d'événements personnalisés.
Tapez eventcreate /?
dans l'invite CMD
Microsoft TechNet: Référence de ligne de commande Windows: Eventcreate
SS64: Référence de la ligne de commande Windows: Eventcreate
Ajoutant ceci à partir de PowerShell 2.0:
Exécutez New-EventLog
une fois pour enregistrer la source de l'événement:
_New-EventLog -LogName Application -Source MyApp
_
Puis utilisez Write-EventLog
pour écrire dans le journal:
_Write-EventLog
-LogName Application
-Source MyApp
-EntryType Error
-Message "Immunity to iocaine powder not detected, dying now"
-EventId 1
_
Vous pouvez également utiliser Windows PowerShell avec la commande suivante:
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
[System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}
Assurez-vous de vérifier que la source n'existe pas avant d'appeler CreateEventSource, sinon une exception sera générée.
Pour plus d'informations:
eventcreate2 vous permet de créer des journaux personnalisés, contrairement à eventcreate .
Si quelqu'un est intéressé, il est également possible de créer une source d'événements manuellement en ajoutant des valeurs de registre.
Enregistrez les lignes suivantes dans un fichier .reg, puis importez-le dans la base de registres en double-cliquant dessus:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\YOUR_EVENT_SOURCE_NAME_GOES_HERE]
"EventMessageFile"="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\EventLogMessages.dll"
"TypesSupported"=dword:00000007
Cela crée une source d'événements nommée YOUR_EVENT_SOURCE_NAME_GOES_HERE
.
Ou utilisez simplement la commande en ligne de commande:
Eventcreate
Cependant, la version cmd/batch fonctionne, vous pouvez rencontrer un problème lorsque vous souhaitez définir un ID d'événement supérieur à 1000. Pour la création d'événement avec un ID d'événement supérieur à 1000, j'utiliserai Powershell de la manière suivante:
$evt=new-object System.Diagnostics.Eventlog(“Define Logbook”)
$evt.Source=”Define Source”
$evtNumber=Define Eventnumber
$evtDescription=”Define description”
$infoevent=[System.Diagnostics.EventLogEntryType]::Define error level
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber)
Échantillon:
$evt=new-object System.Diagnostics.Eventlog(“System”)
$evt.Source=”Tcpip”
$evtNumber=4227
$evtDescription=”This is a Test Event”
$infoevent=[System.Diagnostics.EventLogEntryType]::Warning
$evt.WriteEntry($evtDescription,$infoevent,$evtNumber)