
Simple Logging Facade for Java (SLF4J) è uno strumento di logging che molto spesso viene richiesto come dipendenza da importanti framework. Non si tratta di una semplice libreria bensì di uno strato di astrazione che permette di sfruttare molti altri meccanismi di logging.
Solo per chiarezza, ricordiamo che parliamo di logging riferendoci ad una funzionalità che permette, durante il funzionamento di una nostra applicazione, di inviare messaggi ad una determinata destinazione (tipicamente un file) che tenga traccia di quanto sta avvenendo. Nei messaggi, in genere, si inseriscono informazioni concernenti possibili errori verificatisi o dati di carattere statistico o puramente informativo su quello che il nostro programma fa.
Riportando un esempio presente sulla documentazione ufficiale, vediamo un tipico caso di utilizzo di SLF4J:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Wombat { final Logger logger = LoggerFactory.getLogger(Wombat.class); Integer t; Integer oldT; public void setTemperature(Integer temperature) { oldT = t; t = temperature; logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT); if(temperature.intValue() > 50) { logger.info("Temperature has risen above 50 degrees."); } } }
Una volta ottenuto un oggetto di classe Logger è sufficiente passargli il messaggio da registrare nei log utilizzando uno dei vari metodi che caratterizza il livello di gravità della comunicazione (debug per test di funzionamento, info per normali informazioni, via via fino a quelli dedicati a situazioni di errore).
L’aspetto comunque di più grande interesse in SLF4J resta la possibilità di attuare dei binding, usando questo strumento come un’interfaccia verso un motore di log offerto da un’altra libreria: questo è proprio lo scopo del pattern facade.
Sempre sulla documentazione del progetto troviamo un’immagine piuttosto eloquente che mostra come SLF4J possa lavorare in modalità unbound o collegato ad un altro motore di logging, importando le necessarie librerie:
SLF4J offre sicuramente un punto di approdo al problema del logging molto flessibile e professionale sfruttando uno dei perni della Programmazione Orientata agli oggetti: l’utilizzo di interfacce per nascondere il reale meccanismo di funzionamento sottostante.
Inoltre, la tematica che stiamo trattando è centrale nello sviluppo di software: il logging per quanto possa apparire un’operazione “elementare” resta comunque uno strumento imprescindibile per tenere traccia del funzionamento delle nostre applicazioni sia in fase di debug sia in produzione.
Alla prossima!
No Responses to “SLF4J: meccanismo di logging per Java”