Accueil > > > ECRIRE DANS LE JOURNAL DES EVENEMENTS EVENTVIEWER
ECRIRE DANS LE JOURNAL DES EVENEMENTS EVENTVIEWER
Information sur la source
Description
ce petit code a mettre dans un module peut etre tres pratique pour enregistrer des erreurs dans le journal des evenements de Windows (EventViewer) a partir de votre programme VB. Cela peut servir via des outils de supervision à trapper des erreurs via l'ID de l'evenement par exemple. Exemple d'utilisation : Const IDEvent = 1111 NomSource = app.ExeName Result = WriteToEventViewer("Mon message d'erreur", vbLogEventTypeError, IDEvent, NomSource)
Source
- a mettre dans un module :
-
- Option Explicit
- Public Enum enmLogType
- LogError = 1&
- LogWarning = 2&
- LogInfo = 4&
- End Enum
-
- Public Enum enmErrLevel
- lInfo = &H60000000
- lWarning = &HA0000000
- lError = &HE0000000
- End Enum
-
- Private Declare Function RegisterEventSource Lib "advapi32" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long
- Private Declare Function DeregisterEventSource Lib "advapi32" (ByVal hEventLog As Long) As Long
- Private Declare Function ReportEvent Lib "advapi32" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, ByVal lpUserSid As Long, ByVal wNumStrings As Long, ByVal dwDataSize As Long, lpStrings As Any, lpRawData As Any) As Long
-
-
-
-
- Public Function WriteToEventViewer(sErrMsg As String, eEventType As LogEventTypeConstants, IDEvent As Integer, Optional sSourceName As String) As Boolean
- On Error Resume Next
-
- Dim lEventLogHwnd As Long
- Dim LogType As enmLogType
- Dim lEventID As Long
- Dim lCategory As Long
- Dim sServerName As String
- Dim lRet As Long
-
- WriteToEventViewer = True
- If sSourceName = "" Then sSourceName = App.EXEName
- lCategory = 0
- sServerName = vbNullString
-
- If eEventType = vbLogEventTypeError Then
- LogType = LogError
- lEventID = IDEvent Or enmErrLevel.lError
- ElseIf eEventType = vbLogEventTypeInformation Then
- LogType = LogInfo
- lEventID = IDEvent Or enmErrLevel.lInfo
- ElseIf eEventType = vbLogEventTypeWarning Then
- LogType = LogWarning
- lEventID = IDEvent Or enmErrLevel.lWarning
- End If
-
- lEventLogHwnd = RegisterEventSource(lpUNCServerName:=sServerName, lpSourceName:=sSourceName)
-
- If lEventLogHwnd = 0 Then
- WriteToEventViewer = False
- Exit Function
- End If
-
- lRet = ReportEvent(hEventLog:=lEventLogHwnd, wType:=LogType, wCategory:=lCategory, dwEventID:=lEventID, lpUserSid:=0, wNumStrings:=1, dwDataSize:=0, lpStrings:=sErrMsg, lpRawData:=0)
-
- If lRet = False Then
- WriteToEventViewer = False
- End If
-
- DeregisterEventSource lEventLogHwnd
- End Function
-
-
a mettre dans un module :
Option Explicit
Public Enum enmLogType
LogError = 1&
LogWarning = 2&
LogInfo = 4&
End Enum
Public Enum enmErrLevel
lInfo = &H60000000
lWarning = &HA0000000
lError = &HE0000000
End Enum
Private Declare Function RegisterEventSource Lib "advapi32" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long
Private Declare Function DeregisterEventSource Lib "advapi32" (ByVal hEventLog As Long) As Long
Private Declare Function ReportEvent Lib "advapi32" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, ByVal lpUserSid As Long, ByVal wNumStrings As Long, ByVal dwDataSize As Long, lpStrings As Any, lpRawData As Any) As Long
Public Function WriteToEventViewer(sErrMsg As String, eEventType As LogEventTypeConstants, IDEvent As Integer, Optional sSourceName As String) As Boolean
On Error Resume Next
Dim lEventLogHwnd As Long
Dim LogType As enmLogType
Dim lEventID As Long
Dim lCategory As Long
Dim sServerName As String
Dim lRet As Long
WriteToEventViewer = True
If sSourceName = "" Then sSourceName = App.EXEName
lCategory = 0
sServerName = vbNullString
If eEventType = vbLogEventTypeError Then
LogType = LogError
lEventID = IDEvent Or enmErrLevel.lError
ElseIf eEventType = vbLogEventTypeInformation Then
LogType = LogInfo
lEventID = IDEvent Or enmErrLevel.lInfo
ElseIf eEventType = vbLogEventTypeWarning Then
LogType = LogWarning
lEventID = IDEvent Or enmErrLevel.lWarning
End If
lEventLogHwnd = RegisterEventSource(lpUNCServerName:=sServerName, lpSourceName:=sSourceName)
If lEventLogHwnd = 0 Then
WriteToEventViewer = False
Exit Function
End If
lRet = ReportEvent(hEventLog:=lEventLogHwnd, wType:=LogType, wCategory:=lCategory, dwEventID:=lEventID, lpUserSid:=0, wNumStrings:=1, dwDataSize:=0, lpStrings:=sErrMsg, lpRawData:=0)
If lRet = False Then
WriteToEventViewer = False
End If
DeregisterEventSource lEventLogHwnd
End Function
Conclusion
ATTENTION quand meme a ne pas polluer le journal des evenements avec trop d'enregistrements.
Vous pouvez bien entendu laisser vos commentaires et noter, cela fait toujours plaisir (ou pas, ça depend de votre gentillesse).
Historique
- 19 août 2005 14:26:36 :
- ajout de commentaire
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
comment ecrire dans le journal des evenement windows [ par logik51 ]
salut,je cherche comment ecrire dans le journal des evenements windows...Merci @+
Ecrire des evenements système NT4 [ par flo ]
Bonjour,Je cherche à ce que mon appli vb6 puisse écrire dans les logs d'erreurs système de NT4 (log events).On m'a parle de app.logevents(messErreur,
Ecrire le titre des colonnes verticalment dans dbgrid [ par lacourne ]
Comment écrire le titre des colonnes verticalment dans dbgrid.Merci
Besoin d'aide sur des message d'erreurs [ par Dom ]
Bonjour,J'ai crée une application de base de données en vb6 qui fonctionneparfaitementsur le pc où elle à été programmée, mais en l'installant sur un
Petit Pb ListView [ par Cyril ]
Bonjour a tous,il semblerait que listview soit un control vraiement super. Par contre ,je n'ai que l'aide de MSDN pour apprendre, et franchement j'ai
MP3 ID et chaines ??? [ par Cyril ]
Deja Bonjour a tous,je suis entrain d'ecrire un soft pour faire du renommage de MP3, j'ai vue pas mal de soft faire ce que je ceux faire, mais moi j'y
URGENT : ecrire direct sur un disque(pas ds 1 fichier) [ par Profnul ]
QQu'un sait il comment écrire directement sur les secteurs d'un disque dur ou d'une disquette.c'est URGENT.Merci à tous pour les éventuelles réponses.
GESTION DES ERREURS [ par Alain ]
Bonjour,J'ai réalisé un programme ou on rentre par l'intermédiaire d'un INPUT BOX une variable pour ouvrir une application Excel (feuille Excel). Pour
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|