In questo articolo viene descritto un metodo per effettuare logging in modo circolare; ovvero mantenendo il file di log a grandezza controllata per evitare inutili riempimenti di disco.
La funzione szLog controllerà che la grandezza del file giornale non superi max_size
e immetterà il nuovo messaggio alla fine del file. In caso contrario “pulirà” il file del 20% di max_size
(in modo da lasciare ulteriore spazio per messaggi successivi e non effettuare altro cleanup impegnando memoria e risorse) prima di aggiungere il messaggio.
Per questioni di ottimizzazione di memoria utilizzata e prestazioni, la funzione è “platform dependant”, ossia dipendente dalla piattaforma in cui gira; utilizza infatti metodi di mappatura del file da “pulire”; per questo motivo nell’allegato sono fornite due implementazioni della stessa funzione, una *NIX based che compila tranquillamente in linux e l’altra Windows based per la compilazione sotto Windows.