Bij mijn eerste programmeer ervaringen in Java maakte ik gebruik van
statements voor het loggen c.q. debuggen van de onderhanden applicatie. Opzich een methode die werkt maar niet de handigste. Voor dit doel zijn er betere oplossingen en de meest gangbare is het gebruik van log4j. Dit is een open source logging oplossing van de Apache organisatie.
System.out.println("Te loggen tekst in STRING formaat");
Recept voor gebruik log4j
- Plaats het
log4j-VERSION.jar
bestand in het class pad van de applicatie. - Configureer log4j middels het
log4j.properties
bestand voor log4j. Van dit bestand hoeft er maar één versie per applicatie aanwezig te zijn. - Voeg aan iedere class die gelogd dient te worden een
Logger
object toe. - Gebruik dit
Logger
object om te loggen via de beschikbare methods (debug()
,info()
,warn()
,error()
enfatal()
).
In onderstaande code zien we een voorbeeld van hoe log4j toegepast kan worden.
import java.sql.*;
import org.apache.log4j.*;
/**
* Eenvoudige connectie naar een MySQL database via een JDBC driver
*/
public class JDBCSample {
/* Creatie van een static logger variabele voor deze class */
static Logger log = Logger.getLogger("JDBCSample");
/* Vanaf nu kunnen we loggen. Methoden zijn: log.debug(boodschap),
* log.info(...), log.warn(...), log.error(...), log.fatal(...) */
public static void main(String[] args) {
try {
/* Laden van de JDBC driver */
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
/* Afhandelen van foutmeldingen */
log.fatal("Kan de opgegeven JDBC driver niet laden");
return;
}
}
}
Middels de configuratie van het log4j.properties
bestand bepalen we hoe de uitvoer van onze logging geschied. In onderstaand voorbeeld loggen we alles naar de console.
# Set root category priority to DEBUG and set its only appender to A1
log4j.rootCategory=DEBUG, A1
# A1 is set to be a ConsoleAppender (writes to system console).
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Voor meer informatie over het configureren van hetlog4j.properties
bestand zie het artikel "Don't Use System.out.println!".
Reacties