Java 如何使用具有自定义头的log4j创建日志?
我正在使用具有以下格式的log4j创建日志文件: x、 x,x,x x、 x x、 x,x x 号码 号码 号码 号码 . . 为了放置标题,即包含这些x的前4行,我扩展了PatternLayout类并重写了getHeader()方法。 getHeader代码如下所示:Java 如何使用具有自定义头的log4j创建日志?,java,logging,log4j,Java,Logging,Log4j,我正在使用具有以下格式的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; } 我正在weblog
@Override
public String getHeader(){
return FIRST_LINE + SECOND_LINE + THIRD_LINE + FOURTH_LINE;
}
我正在weblogic服务器上托管我的应用程序。
问题是,每当我重新启动服务器时,每次都会附加头。
另一个问题是,当我在重新启动后点击第一个请求时,会再次附加头,如下所示:
“重新启动后的标头”
“第一个请求后的标头”
是否有人可以建议我如何解决这个问题或其他任何替代方案,以制作具有4个标题行和这些标题后的其他动态值的相同报告?我终于找到了这个问题的解决方案。 我们将重写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;
}
请注意,此代码将只检查文件的第一行,而不是完整的文件