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.

Allegati