是否有一个简单的Java OutputStream模仿类似于log4j RollingFileAppender的功能?基本上它会写入一个增长到最大大小的文件,然后重命名它,开始一个新的等等。只是想在我从头开始写之前我会问。
答案 0 :(得分:0)
在普通的java中没有这样的东西。一旦你有一个文件句柄打开它就打开了 - 你需要关闭它:)
答案 1 :(得分:0)
我没有看到类似的东西,但你可能会将Apache Commons IO ThreadholdingOutputStream
子类化为它。
答案 2 :(得分:0)
有rotating-fos提供RotatingFileOutputStream
。它的用法非常简单:
RotationConfig config = RotationConfig
.builder()
.file("/tmp/app.log")
.filePattern("/tmp/app-%d{yyyyMMdd-HHmmss.SSS}.log")
.policy(new SizeBasedRotationPolicy(5000 /* 5s */, 1024 * 1024 * 100 /* 100MB */))
.policy(DailyRotationPolicy.getInstance())
.build();
try (RotatingFileOutputStream stream = new RotatingFileOutputStream(config)) {
stream.writer("Hello, world!".getBytes(StandardCharsets.UTF_8))
}