我正在尝试使用 log4j 编写 CSV 文件。每次创建日志文件时,必须将 CSV 标头写入日志文件的顶部。例如,所有这些滚动文件必须在日志文件的第一行包含以下内容:
log.0 时间戳,名称,最小值,最大值
log.1 时间戳、名称、最小值、最大值
log.2 时间戳、名称、最小值、最大值
是否可以确定何时发生翻转以便我可以附加标题?
谢谢。
PS:我知道有很多开源 CSV 编写器,但我不想使用它们,因为我想使用我们软件中现有的日志功能。
我正在尝试使用 log4j 编写 CSV 文件。每次创建日志文件时,必须将 CSV 标头写入日志文件的顶部。例如,所有这些滚动文件必须在日志文件的第一行包含以下内容:
log.0 时间戳,名称,最小值,最大值
log.1 时间戳、名称、最小值、最大值
log.2 时间戳、名称、最小值、最大值
是否可以确定何时发生翻转以便我可以附加标题?
谢谢。
PS:我知道有很多开源 CSV 编写器,但我不想使用它们,因为我想使用我们软件中现有的日志功能。
如果您查看 RollingFileAppender 的 log4j 文档,它有一个名为 rollOver 的方法。
http://logging.apache.org/log4j/1.2/apidocs/index.html
您需要实现一个从 RollingFileAppender 继承的自定义文件附加程序,并覆盖 rollOver 方法。我想您可以只调用 super.rollOver,然后在将任何内容记录到新文件之前将您想要的任何内容作为标题写入新文件。
我用这个
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);
}
}