我正在使用具有以下格式的log4j制作日志文件: x,x,x,x x,x x,x,x X 数量 数量 数量 数量 。 。
要放置标题(即包含x的前4行),我扩展了PatternLayout类并覆盖了getHeader()方法。 getHeader代码如下:
@Override
public String getHeader(){
return FIRST_LINE + SECOND_LINE + THIRD_LINE + FOURTH_LINE;
}
我将应用程序托管在weblogic服务器上。 问题是,每当我重新启动服务器时,标头都会被附加。 另一个问题是,当我在重新启动后点击第一个请求时,标头再次被追加:
“重新启动后的标题” “第一个请求后的标题”
任何人都可以建议我如何解决此问题或任何其他替代方法,以使同一报告具有4个标头行和这些标头后面的其他动态值?
答案 0 :(得分:0)
我终于找到了解决这个问题的方法。 我们将重写getHeader()方法,仅在需要时才返回标头。 我使用了以下方法:
您可以使用以下代码解决此问题:
@Override
public String getHeader () {
try (BufferedReader br = new BufferedReader (new FileReader (fileName)) {
String line = br.readLine ();
if (line != null)
return null;
} catch (IOException e) {
e.printStackTrace ();
}
return FIRST_LINE + SECOND_LINE + THIRD_LINE + FOURTH_LINE;
}
请注意,这段代码只会检查文件的第一行,而不是整个文件。