java - FOSS LIB 不是 HOW TODO : OutputStream that auto rolls when file gets too big or hour/day et change

标签 java io

Id 就像一个 OutputStream,它执行 log4j 中 RollingXXXAppender 类中的许多功能。

是否有任何 FOSS 库支持简单 OutputStream 的这种智能。我宁愿代码不知道滚动过程并且不需要任何关于何时滚动的提示?理想情况下,滚动控制助手将被传递到工厂并隐藏在抽象的深处。

示例用例

  1. 自行关闭 -> 文件.txt
  2. 将原始文件重命名为备份文件 -> 文件.txt -> 文件.001
  3. 重新创建一个空文件并继续写入 -> 文件.txt

这种功能最适合任何需要创建非常大的文件(例如日志记录)的系统。

潜在问题

  • 它应该有一些智能,并且不会在一行写入的中间滚动。也许最好的解决方案是在写入之前/之后执行滚动测试,而不是在中间执行。

回复:关于如何编写我自己的提示..

我不想自己写,我知道怎么写——这就是我提到 RollingXXXAppender 的原因。我宁愿利用现有库的成果。

最佳答案

我认为您可以通过扩展 FileOutputStream 轻松实现此目的。但要记住的一件事是,只有当您愿意保持文件打开状态(而不是在每次写入时打开和关闭它)时,这种方法才有意义;反过来,只有集中写入此日志文件才有意义。

关于java - FOSS LIB 不是 HOW TODO : OutputStream that auto rolls when file gets too big or hour/day et change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5826770/

相关文章:

java - 如何修改声音文件Java的音高?

php - 如何使用 PHP 将浏览器输出写入日志文件?

Java GUI完全丢失

java - 如何在给定执行时间的情况下每隔固定时间调用方法

java - 如何传递数组字符串数据作为参数?

java - 将 block 添加到 block - Java OpenGL

python-2.7 - Python 结构错误 : unpack requires a string argument of length 2

java - 无法获取经纬度android

exception - Haskell - readFile 捕获异常

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?