如何使用BufferedReader获取日志文件格式的数据

时间:2011-12-26 06:25:28

标签: java html jsp

我从日志文件中获取数据并将其打印出来,但它不像我的代码中的日志文件那样格式化,

try

    {
    String strpath="/var/new.log";
    FileReader fr = new FileReader(strpath);
    BufferedReader br = new BufferedReader(fr);

    String ch;
    do {
      ch = br.readLine();

      if (ch != null)
        out.println( ch+"\n");
    } while (ch != null);
    fr.close();
    }

        catch(IOException e){

        out.print(e.getMessage());

        }

我文件中的数据是这种格式,

[1324649399] Nagios 3.3.1 starting... (PID=3751)
[1324649399] Local time is Fri Dec 23 09:09:59 EST 2011
[1324649399] LOG VERSION: 2.0
[1324649400] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1324649400] ndomod: Could not open data sink!  I'll keep trying, but some output may get lost...
[1324649400] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.

我的代码是以这种格式打印的,

  

[1324649399] Nagios 3.3.1开始...(PID = 3751)[1324649399]本地   时间是星期五12月23日09:09:59 EST 2011 [1324649399] LOG VERSION:2.0   [1324649400] ndomod:NDOMOD 1.4b9(10-27-2009)Copyright(c)2009   Nagios核心开发团队和社区贡献者[1324649400]   ndomod:无法打开数据接收器!我会继续尝试,但有些输出   可能会迷路... [1324649400]事件经纪人模块   '/usr/local/nagios/bin/ndomod.o'已成功初始化。

如何在日志文件中获取它?

3 个答案:

答案 0 :(得分:0)

您只需要正确使用HTML,以正确格式化的输出呈现数据

答案 1 :(得分:0)

想要使用<pre>标记来保留空格和换行符。您也可以使用JSTL <c:import>来读取文件内容。

<c:import url="/var/new.log" var="data"/>
<pre>
 ${data}
</pre>

答案 2 :(得分:0)

如果我建议,这是构造输出日志的循环的更好方法:

String strpath = "/var/new.log", ch;
FileReader fr = null;
try {
    fr = new FileReader(strpath);
    BufferedReader br = new BufferedReader(fr);
    while ((ch = br.readLine()) != null)
        out.println(ch);
} catch (IOException e) {
    out.print(e.getMessage());
} finally {
    if (fr != null)
        fr.close();
}

要解决格式问题,请按照其他答案的建议进行操作,然后在<pre></pre>标记内输出日志