Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Log4j - Wikipedia, wolna encyklopedia

Log4j

Z Wikipedii

Apache log4j
Producent: Apache (fundacja oprogramowania)
Najnowsze wydanie: 1.2.15 - 24 sierpnia 2007
Ostatnie stabilne wydanie: 1.2.15
Start projektu: 15 października 1999
Systemy: Wieloplatformowa
Rodzaj: Logowanie
Licencja: Apache License 2.0
Adres WWW: logging.apache.org/log4j

Apache log4j - biblioteka języka programowania Java służąca do tworzenia logów podczas działania aplikacji.

Spis treści

[edytuj] Historia

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.

[edytuj] Charakterystyka

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.

[edytuj] Hello World

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");
      
   }
}

[edytuj] Podstawowe pojęcia

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.

[edytuj] Konfiguracja

[edytuj] Metody konfiguracji

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.

[edytuj] BasicConfigurator

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 konfiguracyjemu:

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

[edytuj] Konfiguracja za pomocą pliku właściwości

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.

Składnia pliku konfiguracyjneg jest bardzo prosta. Do wszystkich obiektów odwołujemy się poprzez dodanie przedrostka określającego rodzaj danego obiektu:

  • log4j.appender - dla obiektów typu appender,
  • log4j.appender.X.layout - dla obiektów typu layout (X to nazwa obiektu appender, którego dotyczy dany layout),
  • log4j.logger - dla obiektów typu logger.

W szczególności root logger oznaczamy za pomocą log4j.rootLogger.

log4j.rootLogger=DEBUG, C

Rodzaj obiektu od identyfikatora, za pomocą którego będziemy się do niego odwoływać, oddzielamy znakiem kropki.

  log4j.appender.FILE=org.apache.log4j.FileAppender

Ze względu na to, iż obiekty typu layout mogą dotyczyć tylko jednego obiektu typu appender, nie odwołujemy się do nich za pomocą identyfikatora lecz za pomocą właściwości layout obiektu appender.

log4j.appender.C.layout=org.apache.log4j.PatternLayout

Utworzenie obiektu polega na przypisaniu danemu obiektowi w pełni kwalifikowanej nazwy klasy.

log4j.appender.C=org.apache.log4j.ConsoleAppender

Wyjątkiem są loggery, które wymagają podania oddzielonych przecinkiem:

  • opcjonalnej nazwy poziomu obiektu logger,
  • listy (rozdzielonych przecinkami) identyfikatorów obiektów appender.
  log4j.logger.FileAppenders=ERROR, F1, F2

Określanie właściwości obiektów wygląda jak określanie zwykłych zmiennych w plikach właściwości, tj za pomocą wyrażeń typu obiekt.właściwość=wartość:

log4j.appender.F.file=./logs/file_appender.log

Konfiguracja własnego loggera na poziomie Error dla syslog appedera:

log4j.logger.Log=ERROR, SYSLOG

Wylaczenie dziedziczenia dla stworzonego appendera. Dzieki tej opcji logi beda trafialy tylko do appedera przypisanego do loggera Log. Domyślnie additivity ustawione jest na true.

log4j.additivity.Log=false

Dla Syslog appedera mamy 8 dodatkowych poziomów logowania błedów. Poziomy LOCAL0-LOCAL7 umożliwiają przekierowanie logów do różnych plików w zależności od poziomu.

log4j.appender.SYSLOG.Facility=LOCAL2

Poniżej znajduje się pełny przykład pliku konfiguracyjnego:

# konfiguracja root logger (logger)
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=[%t] %-5p %c - %m%n

# konfiguracja root logger (logger)
log4j.rootLogger=DEBUG, C

# konfiguracja ROLLFILE (appender)
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.file=./logs/rolling_file_appender.log
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.MaxFileSize=5KB
log4j.appender.R.layout=org.apache.log4j.SimpleLayout

# konfiguracja RollingFileAppenders (logger)
log4j.logger.RollingFileAppenders=ERROR, R
# konfuguracja loggera z poziomem Error dla appedera o nazwie SYSLOG
log4j.logger.Log=ERROR, SYSLOG

# konfiguracja SyslogAppendera kierujacego logi do lokalnego(localhost) sysloga, z poziomem LOCAL4
log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.SyslogHost=localhost
log4j.appender.SYSLOG.Facility=LOCAL4
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=[%t] %-5p %c - %m%n

[edytuj] Podobne narzędzia

[edytuj] Alternatywy

[edytuj] Inne

Apache Commonst Logging framework pozwalający na wykorzystanie log4j jeśli jest dostępny albo Java Logging API w przeciwnym wypadku

[edytuj] Linki zewnętrzne

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com