We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Retriving event logs faster vb.net

Medium Priority
3,258 Views
Last Modified: 2013-11-08
Hello,

Today i use below function:

 Dim entry As EventLogEntry
            Dim EL As New EventLog("Application", server, service)
  For Each entry In EL.Entries
 If entry.Source = service Then

That works and all but the log file is sometimes very big which makes this function take very long time, even when i have specified a source in EL's properties it seams to download everything, thats why the if statement.  Is there anyway i can filter the source, and maybe the time before i actually downloading all the logs? if not, any other way to optimize this code to make it faster?

Kind regards,
Peter Hillerberg
Comment
Watch Question

Rahul Goel ITILSenior Consultant - Deloitte
CERTIFIED EXPERT
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview
Rahul Goel ITILSenior Consultant - Deloitte
CERTIFIED EXPERT
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview
Project manager
CERTIFIED EXPERT
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Thanks very much for such a quick reply, however we are still on 2003... :(

any other possible solution?

Author

Commented:
Thanks Dhaest,

I get an error when i run this:
Operation is not supported on this platform.

just wrote a shot test, but for some reason it's not working.

its netframework 3.5 (vb 2008 express)
the server i adress is 2003 sp2 i run it on a server 2003 sp2.

any ideas?

thanks!
Private Sub getmessages()
        
        Dim queryString As String = "*[System/Level=2]"  ' XPATH Query
 
        Dim session As EventLogSession = New EventLogSession(serverrc)
 
        ' Query the Application log on the remote computer.
        Dim query As EventLogQuery = New EventLogQuery( _
            "Application", PathType.LogName, queryString)
        query.Session = session
 
        Try
 
            Dim logReader As New EventLogReader(query)
 
            ' Display query results.
            DisplayEventAndLogInformation(logReader)
 
        Catch e As EventLogException
 
            MsgBox("Could not query the remote computer! " & e.Message)
            Return
        End Try
 
 
    End Sub
 
 
 
    Private Sub DisplayEventAndLogInformation(ByVal logReader As EventLogReader)
 
        Dim eventInstance As EventRecord = logReader.ReadEvent()
        While Not eventInstance Is Nothing
            ' Display event info
            MsgBox("-----------------------------------------------------")
            MsgBox("Event ID: {0}", eventInstance.Id)
            MsgBox("Publisher: {0}", eventInstance.ProviderName)
 
 
            Try
                MsgBox("Description: {0}", eventInstance.FormatDescription())
 
            Catch e As EventLogException
 
                ' The event description contains parameters, and no parameters were 
                ' passed to the FormatDescription method, so an exception is thrown.
 
            End Try
 
            eventInstance = logReader.ReadEvent()
 
            ' Cast the EventRecord object as an EventLogRecord object to 
            ' access the EventLogRecord class properties.
            Dim logRecord As EventLogRecord = CType(eventInstance, EventLogRecord)
            MsgBox("Container Event Log: {0}", logRecord.ContainerLog)
        End While
 
    End Sub
        Dim queryString As String = "*[System/Level=2]"  ' XPATH Query
 
        Dim session As EventLogSession = New EventLogSession(serverrc)
 
        ' Query the Application log on the remote computer.
        Dim query As EventLogQuery = New EventLogQuery( _
            "Application", PathType.LogName, queryString)
        query.Session = session
 
        Try
 
            Dim logReader As New EventLogReader(query)
 
            ' Display query results.
            DisplayEventAndLogInformation(logReader)
 
        Catch e As EventLogException
 
            MsgBox("Could not query the remote computer! " & e.Message)
            Return
        End Try
 
 
    End Sub
 
 
 
 
 
    Private Sub DisplayEventAndLogInformation(ByVal logReader As EventLogReader)
 
        Dim eventInstance As EventRecord = logReader.ReadEvent()
        While Not eventInstance Is Nothing
            ' Display event info
            MsgBox("-----------------------------------------------------")
            MsgBox("Event ID: {0}", eventInstance.Id)
            MsgBox("Publisher: {0}", eventInstance.ProviderName)
 
 
            Try
                MsgBox("Description: {0}", eventInstance.FormatDescription())
 
            Catch e As EventLogException
 
                ' The event description contains parameters, and no parameters were 
                ' passed to the FormatDescription method, so an exception is thrown.
 
            End Try
 
            eventInstance = logReader.ReadEvent()
 
            ' Cast the EventRecord object as an EventLogRecord object to 
            ' access the EventLogRecord class properties.
            Dim logRecord As EventLogRecord = CType(eventInstance, EventLogRecord)
            MsgBox("Container Event Log: {0}", logRecord.ContainerLog)
        End While
 
    End Sub

Open in new window

Dirk HaestProject manager
CERTIFIED EXPERT
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Sorry dont remember where i got the problem exactly and i dont have the time to test this now. i have kinda solved it reading other logfile with same information. Thank you so much for your help.

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.