FOSS LIB не как TODO: OutputStream, который автоматически катится, когда файл становится слишком большим или час / день и изменения - PullRequest
1 голос
/ 29 апреля 2011

Id похож на OutputStream, который выполняет многие функции, найденные в классах RollingXXXAppender в log4j.

Существуют ли какие-либо библиотеки FOSS, поддерживающие этот тип смартов, для простого OutputStream. Скорее код не знать о процессе прокрутки и не требует никаких подсказок относительно того, когда катиться? В идеале, помощники управления качением должны быть переданы на завод и спрятаны глубоко внутри абстракции.

ОБРАЗЕЦ ИСПОЛЬЗОВАНИЯ ОБРАЗЦА

  1. закрывается -> file.txt
  2. переименование оригинала в какую-то резервную копию -> file.txt -> file.001
  3. воссоздание пустого файла и продолжение записи -> file.txt

Этот вид функциональности лучше всего работает для любой системы, которая требует создания действительно больших файлов, таких как ведение журнала.

ПОТЕНЦИАЛЬНЫЕ ПРОБЛЕМЫ

  • он должен иметь несколько умов и не катиться в середине записи строки. Вероятно, наилучшее решение этой проблемы состоит в том, чтобы тесты по крену выполнялись до / после записи, а не в середине.

RE: СОВЕТЫ ПО НАПИСАНИЮ СОБСТВЕННОЙ ..

Я не хочу писать свои собственные, я знаю, как - вот почему я упомянул RollingXXXAppender. Я бы предпочел использовать усилия уже существующей библиотеки.

1 Ответ

0 голосов
/ 29 апреля 2011

Я думаю, вы можете легко реализовать это, расширив FileOutputStream . Однако следует иметь в виду, что этот подход имеет смысл только в том случае, если вы хотите оставить файл открытым - вместо того, чтобы открывать и закрывать его при каждой записи; что, в свою очередь, имеет смысл, только если запись в этот файл журнала централизована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...