
Sicuramente ti sarà capitato, se sei un programmatore ed utilizzi il Java, di avere bisogno di creare un file che effettui il log delle operazioni più critiche o che comunque reputi più importanti.
L’importanza di un file di log è data da diversi fattori e dai più svariati motivi. Puoi ad esempio risalire facilmente a tutte le operazioni effettuate dal programma, compreso i valori assunti dalle variabili. Puoi fornire un’assistenza più efficiente al cliente, prendendo visione del log creato dal tuo programma e andando direttamente a stabilire qual è la causa dell’eventuale problema che si è riscontrato e come risolverlo.
Senza dubbio, un file di log è inutile quando si tratta di poche righe di codice, ma diventa essenziale quando il codice diventa più complesso e soprattutto quando si lavora in un team.
Quali strumenti abbiamo che ci vengono incontro a queste esigenze? Come possiamo creare un file di log delle azioni del nostro programma nella maniera più comoda e veloce possibile?
Lo strumento di cui ti sto per parlare si chiama LOG4J e serve esattamente a questo, creare automaticamente un file di log contenente le operazioni che il programma ha effettuato. Ovviamente dovrai essere tu ad indicare le operazioni che vuoi vengano inserite nel log.
La prima cosa da fare è scaricare LOG4J (ovviamente è gratuito) e puoi farlo da qui:
http://bit.ly/abtBtV
Per l’esempio di questo articolo, ci serviremo di un programma molto elementare che ho realizzato in Java.
Non fa altro che effettuare una conversione Euro/Dollaro inserito il fattore di conversione. Ma a noi serve sapere solo come inserire LOG4J al nostro programma e come farlo funzionare (poi i casi in cui può essere utilizzato sono illimitati).
Puoi trovare il download dell’esempio con il sorgente in fondo all’articolo.
Dopo aver scaricato ed estratto l’archivio di LOG4J, ti troverai di fronte ad un bel po’ di file che includono però anche tutta la documentazione necessaria. Ciò che serve a te però è solamente il file .JAR che si trova nella cartella principale: log4j-1.2.16.jar
Dopo aver creato un nuovo progetto Java con Eclipse, come di consueto ti è stata creata la cartella “src” che contiene appunto i sorgenti dell’applicazione. Se vuoi puoi inserire nel tuo progetto il mio sorgente di esempio, altrimenti puoi usarne uno tuo, è una tua scelta e non cambia assolutamente nulla.
Nella stessa directory in cui si trova “src” crea un’altra cartella chiama “lib” in cui devi incollare il file .JAR che ti ho indicato prima.
Fatto questo, aggiornando Eclipse con F5 dovresti vedere una nuova cartella al livello di “src” in Package Explore, per l’appunto “lib”. Seleziona il file JAR che ci trovi all’interno, click di tasto destro e vai su “Build Path -> Add to Build Path”. Adesso la libreria sarà disponibile per essere utilizzata nell’intero progetto.
Prima di poter utilizzare la libreria però abbiamo bisogno di creare un file all’interno della cartella “src” chiamando “log4j.properties” con questo contenuto (puoi inserirlo col Blocco Note):
log4j.rootLogger=DEBUG, A1 log4j.appender.A1=org.apache.log4j.FileAppender log4j.appender.A1.File=log.txt log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Così facendo impostiamo come canale di uscita (dove verranno visualizzati i nostri log) proprio nel file “log.txt” in modo da essere facilmente consultabile.
Ora possiamo passare alla modifica del nostro codice per l’inserimento dei log.
Anzitutto, inserisci in alto al tuo sorgente questa riga di codice che non fa altro che importare le funzionalità di LOG4J
import org.apache.log4j.Logger;
Adesso devi creare l’oggetto logger per poterlo utilizzare all’interno del tuo programma. Puoi farlo attraverso questa semplice riga. Ciò che puoi modificare a tuo piacimento sono il nome del logger e il nome della classe che deve corrispondere a quella che stai utilizzando. Qui è stato utilizzato per semplicità proprio il nome logger all’oggetto.
private static final Logger logger = Logger.getLogger(LoggingTrial.class);
Adesso puoi usare l’oggetto logger per creare i tuoi log attraverso i vari metodi che mette a disposizione, qui te ne elenco alcuni ma ti consiglio di leggere la documentazione per avere una visione più completa ed un utilizzo più approfondito di questa libreria.
logger.debug(“Messaggio di DEBUG”); logger.info(“Messaggio INFO”); logger.warn(“Messaggio di WARNING”); logger.error(“Messaggio di ERRORE”); logger.fatal(“Messaggio FATAL”);
Per l’utilizzo dei metodi puoi servirti della prassi di programmazione:
DEBUG: Puoi tracciare un pò tutte le operazioni che il programma esegue, soprattutto i valori che le variabili assumono nel corso dell’esecuzione.INFO: Puoi utilizzarlo per tracciare i principali eventi di sistema come ad esempio l’avvio e l’arresto dell’applicazione.
WARN: Con questo prendi nota delle situazioni non proprio ottimali ma che comunque non
provocano l’arresto o problem seri al software.
ERROR: Con error puoi tracciare tutti gli errori che non sono previsti.
FATAL: Lo puoi utilizzare per tracciare tutte quelle operazioni che causano il blocco del programma.
Passiamo adesso al codice da inserire per utilizzare i metodi. Per farlo come ti ho già detto useremo un applicazione in Java semplicissima, eccola:
package Log; import java.util.Scanner; import org.apache.log4j.Logger; public class LoggingTrial { private static final Logger logger = Logger.getLogger(LoggingTrial.class); private static double cambio; private static double euro; private static double dollars; private static boolean sw; public static void main(String[] args) { if (logger.isDebugEnabled()) { logger.debug("main(String[]) - Avvio"); } Scanner in = new Scanner(System.in); System.out.println("Inserisci il tasso di conversione: "); cambio = in.nextDouble(); sw = false; logger.info("Tasso di conversione: " + cambio); while (!sw) { System.out.println("Inserisci il valore in dollari: "); dollars = in.nextDouble(); euro = dollars * cambio; System.out.println("Valore in euro: " + euro + "€"); sw = true; } if (logger.isDebugEnabled()) { logger.debug("main(String[]) - Fine"); } } }
UTILIZZIAMO LOG4E PER AUTOMATIZZARE L’OPERAZIONE
Tutte queste operazioni e righe di codice però potresti trovarle piuttosto noiose per inserirle manualmente. Ecco perché esiste un plugin gratuito di Eclipse che serve proprio ad automatizzare l’inserimento degli avvisi di log.
Questo plugin si chiama LOG4E e puoi scaricarlo direttamente da qui:
http://bit.ly/byjXfE
L’archivio contiene due cartelle: features e plugin che dovrai scompattare direttamente all’interno della cartella principale in cui hai installato Eclipse. Una volta fatto avrai aggiunto LOG4E a Eclipse.
A questo punto per utilizzarlo devi semplicemente cliccare in Eclipse di tasto destro sulla classe a cui vuoi aggiungere il log. Ci troverai una nuova voce, proprio quella di LOG4E, andando poi in “Log this class” ti si aprirà la schermata per poter automaticamente inserire dei logging a livello di DEBUG per poter tracciare l’avvio e l’uscita di ciascun metodo.
Se hai bisogno di inserire dei log in un punto preciso del tuo codice non devi far altro che posizionarti nel punto in cui vuoi inserirli, cliccare di tasto destro e andare su “LOG4E/Log at this position”. Seleziona la classe e nella schermata successiva devi inserire il messaggio che vuoi visualizzare, i parametri e le variabili disponibili. Un po’ più sotto in “Level” seleziona a quale livello deve appartenere il log (DEBUG, WARN ecc…).
Clicca su “Finish” ed hai terminato, il tuo log è stato inserito in una maniera un po’ più comoda rispetto a quella manuale.
Puoi scaricare direttamente da qui il file contenente il sorgente dell’applicazione di prova:
Logging Trial (527 bytes, 2 hits)
You do not have permission to download this file.
Mi raccomando, se hai riscontrato qualsiasi tipo di problema non devi far altro che lasciare un commento e nel più breve tempo possibile ricevere una risposta.
A presto.


LOG4J: come creare e gestire un file di log nelle nostre applicazioni Java con Eclipse…
Sicuramente ti sarà capitato, se sei un programmatore ed utilizzi il Java, di avere bisogno di creare un file che effettui il log delle operazioni più critiche o che comunque reputi più importanti…….
LOG4J: come creare e gestire un file di log nelle nostre applicazioni Java con Eclipse…
Sicuramente ti sarà capitato, se sei un programmatore ed utilizzi il Java, di avere bisogno di creare un file che effettui il log delle operazioni più critiche o che comunque reputi più importanti. L’importanza di un file di log è data da diversi fatto…