Есть система которая ведет логи посредством Zend_Log_Writer_Stream, сообщения пишутся в файлы.
При создании Zend_Log_Writer_Stream надо передавать ссылку на ресурс файла, то есть файл нужно создать — но не факт что система выдаст сообщения, которые будут залогированы.
Поэтому возникает куча пустых файлов.
Есть ли в PHP (для Python тоже актуально) механизм отложенного создания файлов — то есть файл создатся только тогда когда в него начнется запись и не создатся если записи в него не будет.
Скажу про PHP. Насколько я знаю, fopen открывает дескриптор, соотвесттвенно создает файл. А если не вызывать fopen, а реализовать уровнем выше, т.е. перехватывать операцию записи и проверять открыт ли файл. Если не открыт — то открывать. Вообщем, я бы отнаследовался от Zend_Log_writer_Stream и дописал бы нужное.
В пхп/питоне есть замечательная вешь, которая называется ООП, с ее помошью можно создать обьект, наследоваться от (в данном случае) Zend_Log_Writer_Stream и, как это ни странно, переопределить нужные методы, заменив ожидаемой логикой.
Мне кажется что можно написать несложную обёртку над классом файла, в Python я думаю точно можно.
На самый худой конец можно просто проверять размер файла в деструкторе обёртки, и удалять файл если он пуст.