import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LogSearch {
public static List<String> searchLogFiles(String logFilePath, String searchPattern) {
List<String> results = new ArrayList<>();
Pattern pattern = Pattern.compile(searchPattern); // Compile the regex pattern
try (BufferedReader reader = new BufferedReader(new FileReader(logFilePath))) {
String line;
int lineNumber = 0;
while ((line = reader.readLine()) != null) {
lineNumber++;
Matcher matcher = pattern.matcher(line); // Match the pattern in the current line
if (matcher.find()) {
results.add("Line " + lineNumber + ": " + line); // Add the matching line to the results
}
}
} catch (IOException e) {
System.err.println("Error reading log file: " + e.getMessage());
}
return results;
}
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java LogSearch <logFilePath> <searchPattern>");
return;
}
String logFilePath = args[0];
String searchPattern = args[1];
List<String> results = searchLogFiles(logFilePath, searchPattern);
if (results.isEmpty()) {
System.out.println("No matches found.");
} else {
for (String result : results) {
System.out.println(result);
}
}
}
}
Add your comment