Чтение файла журнала в Java
Можно ли читать файлы журнала (abc.log), используя Java?
Я хочу конкретную строку из моего файла журнала.
Предположим, что это содержимое моего журнала. Я хочу только отметку времени (например, 05:08:37) и распечатать ее на консоли.
2012-12-16 05:08:37,905 [Thread-1] INFO com.submit.SubmitService - Wait time 500
2012-12-16 05:08:38,444 [Thread-1] INFO com.submit.SubmitService - NO OF RECORDS TILL NOW 3755 TOTAL TIME -- << 539
2012-12-16 05:08:38,668 [Thread-1] INFO com.submit.SubmitService - Active Connection:: -69076
2012-12-16 05:08:38,670 [Thread-1] INFO com.submit.SubmitService - Active Connection:: -65764
2 ответа
Решение
Вы можете прочитать свой "лог-файл" как обычный файл.
Затем вы можете использовать, например, регулярное выражение, чтобы получить часть строки, которая вам нужна:
try{
FileInputStream fstream = new FileInputStream("abc.log");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
/* read log line by line */
while ((strLine = br.readLine()) != null) {
/* parse strLine to obtain what you want */
System.out.println (strLine);
}
fstream.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
import java.io.File;import java.io.FileNotFoundException;importjava.util.Scanner; импорт java.sql.*;
открытый класс ReadingEntireFileWithoutLoop {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("X:\\access.log");
Scanner sc = new Scanner(file);
sc.useDelimiter(",|\r\n");
System.out.println(sc.next());
while(sc.hasNext()){
System.out.println(sc.next());
}
// closing the scanner stream
sc.close();
}