Вместо того, чтобы беспокоиться об изменении данных, которые я уже написал, я бы просто следовал проверенной временем традиции запуска нового файла журнала в определенный момент, либо когда текущий достигнет определенного размера, либо по расписанию (ежечасно, ежедневно или иначе).
Просто переименуйте текущий файл журнала с xyzzy.log
на xxyyz-YYYYMMDDHHMMSS.log
, затем запустите новую копию xyzzy.log
.
Это также дает вам достойный компромисс между ведением полного аудита журналов и сохранением дискового пространства. Вы можете настроить процедуры для удаления файлов журнала старше 30 дней, или сохранить совокупный размер ниже некоторого порогового значения, или даже перенести старые журналы в область вторичного хранения.
Эти процедуры даже не должны быть частью вашей программы - у меня в прошлом просто было запланированное задание, которое очищает старые файлы журналов, задание, которое ничего не делило с самой программой, кроме каталога. где находился сценарий.
Вероятно, это самый простой способ сделать это, за исключением интеграции стороннего продукта (что не всегда возможно), и, поскольку файлы журналов почти всегда для программиста, а не для пользователя, стандарты именования не должны быть слишком обременительным.
A очень простое решение, которое я использовал в прошлом (по общему признанию с Linux), состоит в том, чтобы вообще не беспокоиться о переименовании. Просто запустите файл журнала, используя текущую дату, и запомните , какой была дата. Каждый раз, когда вы вызываете функцию журнала после этого, проверяйте, не изменилась ли дата, и, если это так, откройте новый файл журнала для последующей регистрации. Это дает вам один файл журнала в день без особых усилий со стороны программы.
Тогда у меня были только сценарии, использующие find -mtime
для удаления тех, кто старше определенного возраста.