• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 519
  • Last Modified:

vbs script extract data from logs within last 24 hours

folks

how can I extract specific data from other logs into another log file but only after a specific timestamplis met i.e. i want to extract the values


"system#notboundexception" Or  "Successfully connected" from log 1 and log 2 but only if they are logged within the last 24 hours from now
log 1

[14/03/14 16:04:51:985 GMT xxxxxxxxxxxx eeeeeeeeeeeeeee
system#notboundexception

[15/03/14 10:04:51:985 GMT xxxxxxxxxxxx eeeeeeeeeeeeeee
system#notboundexception


log 1

[12/03/14 16:24:51:985 GMT xxxxxxxxxxxx eeeeeeeeeeeeeee
system#notboundexception

[15/03/14 10:04:51:985 GMT xxxxxxxxxxxx eeeeeeeeeeeeeee
Successfully connected

output.log should only show the log entries from either log 1 /2 on over the last 24 hours (being today)

how can I achieve this?

Below is my code to  extract the values from the logs , I need help in assuring only todays records are extracted only


Dim objFSO
Dim objFile
Dim objOut
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
 
 'create output file
 strOutputName = "output.txt"
 Set objOut = objFSO.GetFolder(strFolder).CreateTextFile(strOutputName, True)
 

'for each file in directory
For Each objFile In objFSO.GetFolder(strFolder).Files
        'if its a log file
        If Right(LCase(objFile.Name), 4) = ".log" Then
               'open log file
                Set objLogFile = objFSO.OpenTextFile(objFile.Path, intForReading, False)
                'loop thorugh log file
                Do While Not objLogFile.AtEndOfStream
                        strData = Replace(objLogFile.ReadLine, ",", "")
                        'replace(var,",","")
                        If InStr(strData, "system#notboundexception") Or InStr(strData, "Successfully connected") Then objOut.WriteLine strData & ", " & objFile.Name & ", " & Date & ", " & Time & ""
                Loop

                objLogFile.Close
                Set objLogFile = Nothing
       
        End If
Next
objOut.Close


all help will do
0
rutgermons
Asked:
rutgermons
  • 2
1 Solution
 
KimputerCommented:
In your final check before writing the result:

 If InStr(strData, "system#notboundexception") Or InStr(strData, "Successfully connected") Then objOut.WriteLine strData & ", " & objFile.Name & ", " & Date & ", " & Time & ""

add an extra test for date as in:

if (cdate(mid(strData,2,17)) > DateAdd("d", -1, Now)) then
0
 
rutgermonsAuthor Commented:
Kimputer

Could you show me where this exactly fits in the code?

thanks in advance!
0
 
KimputerCommented:
Sorry, I thought you did the original code, so I thought you could fit it in yourself. But here's the full code:

Dim objFSO
Dim objFile
Dim objOut
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
 
 'create output file
 strOutputName = "output.txt"
 Set objOut = objFSO.GetFolder(strFolder).CreateTextFile(strOutputName, True)
 

'for each file in directory
For Each objFile In objFSO.GetFolder(strFolder).Files
        'if its a log file
        If Right(LCase(objFile.Name), 4) = ".log" Then
               'open log file
                Set objLogFile = objFSO.OpenTextFile(objFile.Path, intForReading, False)
                'loop thorugh log file
                Do While Not objLogFile.AtEndOfStream
                        strData = Replace(objLogFile.ReadLine, ",", "")
                        'replace(var,",","")
                        If InStr(strData, "system#notboundexception") Or InStr(strData, "Successfully connected") Then
							if (cdate(mid(strData,2,17)) > DateAdd("d", -1, Now)) then
								objOut.WriteLine strData & ", " & objFile.Name & ", " & Date & ", " & Time & ""
							end if
						end if 
                Loop

                objLogFile.Close
                Set objLogFile = Nothing
       
        End If
Next
objOut.Close

Open in new window

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now