5

javaを使用してログファイル(abc.log)を読み取ることは可能ですか?

ログファイルから特定の文字列が必要です。

これが私のログファイルの内容だとしましょう。タイムスタンプのみ(例: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
4

2 に答える 2

9

「ログファイル」は通常のファイルとして読み取ることができます。

次に、たとえば正規表現を使用して、必要な文字列の部分を取得できます。

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());
}
于 2012-12-18T14:16:27.303 に答える
-1
import java.io.File;import java.io.FileNotFoundException;importjava.util.Scanner;
import java.sql.*;  

public class 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();
    }
于 2018-07-30T21:42:34.360 に答える