Log4j
Autor | Apache |
---|---|
Pierwsze wydanie | 24 sierpnia 2007 |
Aktualna wersja stabilna | 2.24.1 (29 września 2024) [±] |
Platforma sprzętowa | Wieloplatformowa |
Rodzaj | Logowanie |
Licencja | Apache License 2.0 |
Strona internetowa |
Apache log4j – biblioteka języka programowania Java służąca do tworzenia logów podczas działania aplikacji.
Historia
[edytuj | edytuj kod]Pierwotnie log4j został utworzony przez Ceki Gülcü. Obecnie jest jednym z projektów Apache. Obecna gałąź 1.2 została rozpoczęta 1 maja 2002 roku. Prace nad kolejną wersją 1.3 zostały zatrzymane. Kolejne wydanie ma opierać się na mechanizmach Java 5. Będzie nosiło numer 2.0.
Charakterystyka
[edytuj | edytuj kod]Log4j stanowi rozbudowane narzędzie do tworzenia logów. Ponieważ jest napisany w języku Java, jest w pełni przenośny.
Dzięki możliwości konfiguracji za pomocą zewnętrznych plików zmiana zachowania mechanizmu logowania nie wymaga ponownej kompilacji. Istnieje możliwość rozszerzania istniejących funkcjonalności przez zaimplementowanie własnych poziomów logowania czy też obiektów miejsc przeznaczenia logów.
Obiekty różnych typów tworzą struktury drzewiaste. Relacje między elementami tej struktury są analogiczne jak w XML, tzn. występują dzieci, rodzice, przodkowie i potomkowie. Różne właściwości danego obiektu mogą być propagowane na jego dzieci.
Hello World
[edytuj | edytuj kod]Poniżej został zaprezentowany program typu Hello World. Wykorzystuje on prostą konfigurację za pomocą klasy BasicConfigurator. Zdefiniowano tu jeden logger "HelloWorld". Działanie programu sprowadza się do wysłania jednego komunikatu o priorytecie DEBUG.
import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator;
public class HelloWorld { public static void main(String[] args) { BasicConfigurator.configure(); Logger logger = Logger.getLogger(HelloWorld.class); logger.debug("Hello world"); } }
Podstawowe pojęcia
[edytuj | edytuj kod]Obiektami odpowiedzialnymi za wysyłanie komunikatów są obiekty logger. Posiadają one metody, które tworzą logi i ustawiają im odpowiedni priorytet. Miejsca, do których mogą trafić logi, są definiowane za pomocą obiektów appender. O tym, jaką postać mają mieć komunikaty, decyduje obiekt layout.
Konfiguracja
[edytuj | edytuj kod]Metody konfiguracji
[edytuj | edytuj kod]Istnieją trzy podstawowe metody konfiguracji:
- za pomocą obiektu typu BasicConfigurator oraz programowalnego ustawiania właściwości,
- za pomocą pliku właściwości,
- za pomocą dokumentu XML.
Konfiguracja programowalna polega na bezpośrednim wywoływaniu metod poszczególnych obiektów. Bardziej elastyczne rozwiązanie polega na zastosowaniu zewnętrznych plików konfiguracyjnych.
BasicConfigurator
[edytuj | edytuj kod]Najmniej elastycznym sposobem konfiguracji jest wywołanie metody configure() obiektu BasicConfigurator. Powoduje utworzenie obiektu PatternLayout, którego ConversionPattern ma wartość:
%-4r [%t] %-5p %c %x - %m%n
zajmuje się on formatowaniem komunikatów wysyłanych przez obiekt root logger na konsole. Odpowiada to zatem plikowi konfiguracyjnemu:
log4j.appender.C=org.apache.log4j.ConsoleAppender log4j.appender.C.layout=org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.rootLogger=DEBUG, C
Konfiguracja za pomocą pliku właściwości
[edytuj | edytuj kod]Najprostszym sposobem konfiguracji jest wykorzystanie pliku właściwości. Musi być on umieszczony w classpath danego projektu, na przykład w głównym katalogu w którym znajduje się skompilowany kod Java.
Linki zewnętrzne
[edytuj | edytuj kod]- Apache Log4j 2. The Apache Software Foundation. (ang.).
- Log4j. Apache Wiki. (ang.).
- Log4j 2 Javadoc API Documentation and TLD Documentation. The Apache Software Foundation. (ang.).