HOWTO: Back Up the NT Event Log in Visual Basic

ID: Q216089


The information in this article applies to:
  • Microsoft Visual Basic Standard, Professional, and Enterprise Editions, 32-bit only, for Windows, version 4.0
  • Microsoft Visual Basic Learning, Professional, and Enterprise Editions for Windows, versions 5.0, 6.0


SUMMARY

Event logging in Windows provides a standard, centralized way for Windows and applications to record important software and hardware events. It also supplies a standard user interface for viewing the logs and a programming interface for examining the logs.

This article illustrates how to back up the NT Event Log with Visual Basic versions 4.0 and later. This can be done using the BackupEventLog API call. While Visual Basic versions 5.0 and later have built-in functionality for event-logging, they do not provide the backup functionality that the Win32 API does.


MORE INFORMATION

The following example shows how to back up the local Application Event Log to a file named appback.evt:

Step by Step Example

  1. Create a new standard project in Visual Basic. Form1 is created by default.


  2. Add a CommandButton to Form1 and change its name to cmdBackupEventLog .


  3. Add the following code to the Form1 code window:


  4. 
    Private Declare Function BackupEventLog Lib "advapi32.dll" Alias "BackupEventLogA" ( _
        ByVal hEventLog As Long, _
        ByVal lpBackupFileName As String) _
        As Long
    
    Private Declare Function CloseEventLog Lib "advapi32.dll" ( _
        ByVal hEventLog As Long) _
        As Long
    
    Private Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" ( _
        ByVal lpUNCServerName As String, _
        ByVal lpSourceName As String) _
        As Long
    
    Private Sub cmdBackupEventLog_Click()
        Dim hEventLog As Long
        Dim lretv As Long
        
        hEventLog = OpenEventLog(VBNullString, "Application")
        If hEventLog = 0 Then
             Debug.Print "OpenEventLog Failed"
             Exit Sub
        End If
        
        lretv = BackupEventLog(hEventLog, "appback.evt")
        If lretv = 0 Then
             Debug.Print "BackupEventLog Failed"
             Exit Sub
        End If
                    
        lretv = CloseEventLog(hEventLog)
        If lretv = 0 Then
             Debug.Print "CloseEventLog Failed"
             Exit Sub
        End If
    
    End Sub 
  5. Press the F5 key to run the project and click cmdBackupEventLog. This backs up the Event Log to the file appback.evt.



REFERENCES

For additional information about event logging from Visual Basic, click the article numbers below to view the articles in the Microsoft Knowledge Base:
Q154576 HOWTO: Write to the NT Event Log from Visual Basic
Q161306 INFO: App.LogEvent Only Logs in Compiled Applications
Q184747 INFO: Event Logging in Visual Basic
Q216097 HOWTO: Clear the NT Event Log in Visual Basic
Q216146 HOWTO: Get the Number of NT Event Log Records in Visual Basic

Additional query words:

Keywords : kbAPI kbEventLog kbNTOS400 kbSDKWin32 kbVBp kbVBp400 kbVBp500 kbVBp600 kbGrpVB kbDSupport
Version : WINDOWS:4.0,5.0,6.0
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: November 24, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.