So I've got a log file that i need to search for certain strings and print out the lines that fall in between certain date ranges.
Ive got the first part done but im stuck on the second. How would i print out a string within a certain date. so say i want to print all strings between 2012-09-01 and 2012-09-15
Log Example:
2012-09-13 16:04:22 DEBUG SID:34523 BID:1329 RID:65d33 'Starting new session' 2012-09-13 16:04:30 DEBUG SID:34523 BID:1329 RID:54f22 'Authenticating User' 2012-09-13 16:05:30 DEBUG SID:42111 BID:319 RID:65a23 'Starting new session' 2012-09-13 16:04:50 ERROR SID:34523 BID:1329 RID:54ff3 'Missing Authentication token' 2012-09-13 16:05:31 DEBUG SID:42111 BID:319 RID:86472 'Authenticating User' 2012-09-13 16:05:31 DEBUG SID:42111 BID:319 RID:7a323 'Deleting asset with ID 543234' 2012-09-13 16:05:32 WARN SID:42111 BID:319 RID:7a323 'Invalid asset ID'
This is my code so far:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class ReadLogs {
public static void main(String args[]) throws FileNotFoundException{
String line, logString ="";
Date startDate, endDate;
ArrayList<String> logList = new ArrayList<>();
Scanner logScanner = new Scanner(new File("C:\\Users\\cmccarth\\Desktop\\logs.txt"));
while (logScanner.hasNextLine()) {
line = logScanner.nextLine();
logList.add(line);
}
for (String z : logList) {
// System.out.println(z);
}
// This function prints out all lines containing a specific string
for( int i = 0; i <= logList.size() - 1; i++)
{
logString = logList.get(i);
if(logString.contains("16:04:22")){
System.out.println("String Contains" +logString);
}
}
}
}