Solved

vbs script extract data from logs within last 24 hours

Posted on 2014-03-15
3
516 Views
Last Modified: 2014-03-16
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
Comment
Question by:rutgermons
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 36

Expert Comment

by:Kimputer
ID: 39932009
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
 

Author Comment

by:rutgermons
ID: 39932302
Kimputer

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

thanks in advance!
0
 
LVL 36

Accepted Solution

by:
Kimputer earned 500 total points
ID: 39932603
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

Independent Software Vendors: 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!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article was inspired by a question here at Experts Exchange (http://www.experts-exchange.com/Software/Photos_Graphics/Images_and_Photos/Q_28629170.html). The requirements stated in that question are (1) reduce the file size of a large number of…
Use this article to create a batch file to backup a Microsoft SQL Server database to a Windows folder.  The folder can be on the local hard drive or on a network share.  This batch file will query the SQL server to get the current date & time and wi…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question