Multilog da DJB's daemontools pode fazer (quase) exatamente o que você está pedindo. A única desvantagem de que estou ciente é que muitas distribuições não têm um pacote para daemontools .
Se você não está gerenciando seu aplicativo com svc
(parte dos daemontools) você terá que encontrar uma maneira de enviar a saída para um comando como
multilog t s1048576 n100 ./my_log_directory
Isso se traduz em:
-
t
: insere um timestamp tai64n (que pode ser traduzido para um tempo legível comtai64nlocal
) -
s1048576
: rotaciona o arquivo de log quando crescer para 1 MiB -
n100
: não mantenha mais de 100 arquivos girados -
./my_log_directory
: qualquer coisa que comece com.
ou/
- grave o log nesse diretório
O log que está escrito terá o nome de arquivo current
, e quando o multilog rotacionar o log, ele será renomeado para @<tai64n timestamp>.s
, onde o nome do arquivo mostrará a hora em que o arquivo foi girado. A extensão pode ser .s
se o arquivo foi liberado com segurança ou .u
se ele tiver sido truncado.
Para mais informações, basta verificar os links.