我正在尝试使用log4j来编写CSV文件。每次创建CSV标头时,必须将其写入日志文件的顶部。例如,所有这些已滚动文件必须具有以下作为日志文件中的第一行:
log.0时间戳,名称,分钟,最大值
log.1时间戳,名称,最小值,最大值
log.2时间戳,名称,最小值,最大值
是否可以确定何时发生翻转以便我可以附加标题?
感谢。
P.S:我知道有很多开源CSV编写器,但我不想使用它们,因为我想在我们的软件中使用现有的日志功能。
答案 0 :(得分:6)
如果你查看RollingFileAppender的log4j文档,它有一个名为rollOver的方法。
http://logging.apache.org/log4j/1.2/apidocs/index.html
您需要实现一个继承自RollingFileAppender的自定义文件追加器,并覆盖rollOver方法。我想你可以调用super.rollOver,然后在记录任何内容之前将你想要的任何内容作为标题写入新文件。
答案 1 :(得分:0)
我用这个
public class MyRoller extends RollingFileAppender {
@Override
public void rollover() {
super.rollover();
final LoggingEvent event = new LoggingEvent();
event.setMessage("CSV_HEADER;1;2;3;4;...");
event.setLevel(Level.INFO);
append(event);
}
}