Poniżej zamieszczam kod konfigurujący bibliotekę log4j, który po zamieszczeniu w naszej aplikacji spowoduje, że nie będziemy już potrzebowali pliku konfiguracyjnego log4j.configuration, czy też log4j.xml. Dodatkową korzyścią jest fakt, że po niewielkich zmianach będziemy mogli z poziomu naszej aplikacji dostosowywać na bieżąco mechanizm logowania do aktualnych potrzeb, np: rozszerzając lub zawężając zakres logowanych informacji, czy też dodając nowe lub usuwając aktualnie niepotrzebne appender’y.

Poniższy kod konfiguruje logger’a tak, aby wszelkie informacje, niezależnie od poziomu logowania archiwizowane były w plikach logów, oraz dodatkowo, komunikaty o poziomie logowania INFO i wyższych były wyświetlane na konsoli.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static { // log4j configuration
    final PatternLayout layout = new PatternLayout("%d{ISO8601} %p [%c{1}:%L] %m%n");

    try {
        RollingFileAppender fileAppender = new RollingFileAppender(layout, "logs/application.log", true);
        fileAppender.setThreshold(Level.ALL);
        fileAppender.setEncoding("UTF-8");
        fileAppender.setMaxFileSize("2MB");
        fileAppender.setMaxBackupIndex(9);

        BasicConfigurator.configure(fileAppender);
    } catch (IOException ex) {
        log.error("Error while initializing RollingFileAppender", ex);
    }

    ConsoleAppender consoleAppender = new ConsoleAppender(layout);
    consoleAppender.setThreshold(Level.INFO);

    BasicConfigurator.configure(consoleAppender);
}

Szczegółowych informacji na temat konfiguracji log4j’a możecie szukać na jego stronie domowej lub poprzez Google.