Ho un'applicazione Linux che scrive continuamente le informazioni di registrazione in un file di registro, ad es. /var/log/application.log
. Poiché l'applicazione non ruota automaticamente il file, questo file di registro può raggiungere una dimensione di gigabyte in alcune settimane, quindi voglio essere in grado di ruotare correttamente questo file
La mia preoccupazione principale qui è che per ruotare un file aperto dall'applicazione in ogni momento, probabilmente dovrò:
Sposta il file nella sua forma ruotata
/var/log/application.log -> /var/log/application.log.2013-01-28
Crea un vuoto
/var/log/application.log
. Obs: A questo punto il processo di candidatura sta ancora scrivendo/var/log/application.log.2013-01-28
Modificare il descrittore di file del processo dell'applicazione in modo che punti nuovamente
/var/log/application.log
Quindi ho ragione? In tal caso, come posso farlo? (principalmente la modifica della parte descrittore di file)
Se non lo sono, qual è il modo corretto e come farlo?
dup2
il nuovo descrittore su quello vecchio, quindi chiudi il nuovo descrittore.)