Categorie
Informatica

l’importanza del logging

ho detto logging, non jogging. che fa anche lui bene.
fatto sta che metto in cron sul server di produzione l’ultima mia fatica in java. il programma legge dati da un web service e da un file ascii (circa 15000 record totali) e aggiorna se necessario i record su database.
sto simpatico programmino gira ogni ora per 12 ore al giorno. bene, log4j è il sistema di logging, classico, segnala con una mail se qualcosa va storto e scrive su un file di log gli eventuali record errati. tutto facile.
il programma entra in produzione il giorno 27/12. per qualche motivo il web service viene disattivato il giorno dopo, il 28. ritorno al lavoro mercoledì 3/1, sei giorni dopo: “non sarà successo niente…”. infatti. nessuna mail di errore… strano… ma neanche di successo… come mai???… controllo il file di log. eccolà! 524Mb di file di log!!! ogni inserimento di record sbagliato per 12 volte al giorno per 6 giorni ha generato una o più righe nel file di log, producendo un file assssurdo.
quindi ho riguardato il file di log4j e ho corretto l’appender modificandolo da FileAppender a RollingFileAppender.
e ho scritto 100 volte sulla lavagna: “stai attento a quello che metti in produzione”.
alla maggior parte di voi, di questa storiella non gliene sarà fregato un piffero, per alcuni invece sarà didattica.
per questi ultimi aggiungo allora anche una configurazione buona e valida di log4j, a futura memoria…

<appender name="file" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="${log.dir}/nome_del_file.log" />
     <param name="Append" value="true" />
     <param name="MaxFileSize" value="1024KB" />
     <param name="MaxBackupIndex" value="10" />
     <layout class="org.apache.log4j.TTCCLayout">
          <param name="dateFormat" value="ISO8601" />
     </layout>
</appender>