Doorgaan naar hoofdcontent

Gebruik van log4j voor logging / debugging

Bij mijn eerste programmeer ervaringen in Java maakte ik gebruik van
System.out.println("Te loggen tekst in STRING formaat");
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.

Recept voor gebruik log4j

  1. Plaats het log4j-VERSION.jar bestand in het class pad van de applicatie.
  2. Configureer log4j middels het log4j.properties bestand voor log4j. Van dit bestand hoeft er maar één versie per applicatie aanwezig te zijn.
  3. Voeg aan iedere class die gelogd dient te worden eenLogger object toe.
  4. Gebruik dit Logger object om te loggen via de beschikbare methods ( debug(), info(), warn(), error() en fatal() ).

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

Populaire posts van deze blog

Asus Zenbook UX31A en het loszittende plakbandje

Ik heb al weer een jaar of drie naar tevredenheid een Asus Zenbook UX31A ultrabook in gebruik. Een 13" model met een goede 1920x1080 resolutie en een lekker vlotte Core i7 processor en 256 GB SSD. Helaas heb ik sinds een paar weken problemen met het toetsenbord. Bepaalde toetsen (zoals de A, E, backspace, Windows e.d.) reageren een tijdlang niet om het vervolgens weer wel een tijdje te doen. Na een korte zoekactie op internet blijkt dit een bekend euvel te zijn van deze serie van Asus ultrabooks. Op IFixit vind ik een i nstructie waarin uitgelegd wordt dat dit komt doordat de stekker van het toestenbord los is gekomen achter het stukje plakband. Een euvel dat jezelf kan oplossen als je de juiste schroevendraaier in huis hebt in een minuut of tien. In drie korte stappen wordt uitgelegd wat je moet doen. Van de week de juiste T5 torx schroevendraaier gekocht en vandaag maar een poging gedaan het euvel op te lossen. Na het openschroeven van de achterkant de connector beoordeeld ...

Installatie SQL Server 2008

Alle voorbereidingen voor de installatie van SQL Server 2008 zijn gedaan. Er is een VPC aangemaakt met daarop een verse Windows Server 2008 installatie en in het AD zijn alle benodigde accounts aangemaakt. We loggen op de VPC in met het installatie account (SQL_Setup). Vervolgens maken we verbindingen met de SQL server installatie media. In mijn geval een ISO bestand met daarop SQL Server 2008 Developer Edition. We starten de installatie door de setup te starten (eventueel via Auto Play). Aangezien Windows Server 2008 met Vista de UAC (User Account Control) functionaliteit deelt dient het account dat je gebruikt dus administrator te zijn op de server waarop we SQL Server installeren. De setup wizard detecteert dat het Microsoft .NET Framework (standaard zijn van het Framework v1.0, v1.1 en v2.0 geinstalleerd op Windows Server 2008) bijgewerkt dient te worden naar een hogere versie en dat er een bijgewerkte Windows Installer nodig is. We starten de installatie hiervan middels de keuze ...

Aanmaken service accounts voor SQL Server 2008

Gisteren heb ik de service accounts voor MOSS 2007 aangemaakt. Vandaag gaan we de accounts aanmaken voor SQL Server 2008. Ook hier pas ik het principe van 'least privileges' toe. Dit betekent iedere service zijn eigen account en als kan geen beheerder rechten toekennen. Na het bestuderen van het MSDN artikel ' Setting Up Windows Service Accounts ' ben ik tot onderstaande account matrix gekomen. [ Download SA account matrix ] Bovenstaande accounts worden aangemaakt in het AD onder de eerder aangemaakte organisatorische eenheid voor service accounts. De SQL Server accounts worden geplaatst onder 'SQL Server'. Na het aanmaken van de SQL Server accounts ziet mijn AD er als volgt uit.