Apache Log4j
Az Apache log4j Java-alapú naplózási segédeszköz. Eredetileg Ceki Gülcü írta, jelenleg az Apache Software Foundation projektje, egyike a számos Java naplózási keretrendszernek . Gülcü azóta már az SLF4J-en és Logback projekten dolgozik,[2] amelyek a log4j új generációs változatai lesznek. A log4j csapat szintén elkészítette a log4j utódját a 2.0-s verziószámmal. A log4j 2.0 tanult a log4j 1.2, 1.3 és java.util.logging és logback problémáiból, megnevezve azokat a kulcsproblémákat, amelyek ezekben a keretrendszerekben felmerültek. A log4j 2.0 továbbá egy bővítő modul architektúrát is nyújt, amely jobban bővíthetővé teszi elődjénél. A log4j 2.0 nem kompatibilis visszafelé az 1.x-es verziókkal,[3] habár egy illesztő program rendelkezésre áll hozzá. Naplózás szintjeiA következő táblázat definiálja a log szinteket és üzeneteket a log4j-ban, fontossági szerint csökkenő sorrenden. A bal oldali oszlop megadja a log szintek megnevezést a log4j-ben, a jobb oldali oszlop pedig egy rövid leírást ad minden naplószintről.
A log4j 1.2 konfigurációjaA log4j-t háromféleképpen is lehet konfigurálni: properties fájllal, XML fájllal és Java kódon keresztül. Akármelyiket is választjuk háromféle fő komponenst lehet definiálni: naplózókat (loggers), illesztőket (appenders) és elrendezéseket (layouts). A naplózás fájlon keresztüli konfigurálásának előnye, hogy a naplózás hangolását az alkalmazás módosítása nélkül lehet elvégezni a log4j használatával. Az alkalmazás futhat naplózás nélkül a probléma felmerüléséig pl., és aztán a naplózást vissza lehet kapcsolni egyszerűen a konfigurációs fájl módosításával. A naplózók (angolul Logger-ek) reprezentálják a logikai naplófájl nevek. Ezek azok a nevek, amelyek használatosak a Java alkalmazásban is. Minden naplózó függetlenül konfigurálható, megadható, hogy milyen szinten naplózzon (FATAL, ERROR stb.) az aktuális naplófájlban. A log4j korábbi verzióban volt még kategória (category) és prioritás (priority) is, de jelenleg ezeket naplózók (angolul logger) és szinteknek (angolul level) hívják. A tényleges kimeneteket az illesztők (angolul Appender-ek) állítják elő. Számos illesztő érhető el beszélő nevekkel pl. FileAppender, DailyRollingFileAppender, ConsoleAppender, SocketAppender, SyslogAppender, NTEventLogAppender és SMTPAppender. Minden naplózóhoz több illesztő is hozzárendelhető, így lehetséges naplózni ugyanazt az információt több kimenetre is, pl. egyszerre egy lokális fájlba és egy socket listenerre egy másik számítógépen. Az illesztők elrendezéseket (angolul Layoutokat) használnak, hogy formába öntsék a napló bejegyzéseket. Az egy-sor-egy-időben naplófáj formázás egy olyan népszerű minta elrendezés, amely olyan minta stringet használ, mint a C / C++ printf függvénye. Létezik továbbá HTMLLayout és XMLLayout elrendezés formázó is HTML ill. XML használatához a kényelem kedvéért. A hibásan működő konfiguráció hibakereséshez a Van egy implicit nem „konfigurált” konfigurációja is a log4j-nak, amely log4j konfiguráció nélküli Java alkalmazások esetén aktivizálóik. Kiír egy figyelmeztetést sztenderd kimentre, arról hogy a program nincs bekonfigurálva, továbbá kiírja a log4j weboldalára mutató URL-t is, ahol a további részletei megtekinthetők, valamint kiír egy ismertetőt a log4j konfigurációjáról. Miután kiíródik az említett figyelmeztetés, a nem konfigurált log4j-s alkalmazás többé nem íja ki az INFO, DEBUG vagy TRACE ill. magasabb szintűeket üzeneteket. log4j 1.2-es példa<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration>
<!--
az appender egy kimeneti típus, mint pl. a konzol vagy egy fájl;
az appenderek nevei tetszőlegesen választhatók
-->
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<!--
loggers of category 'org.springframework' will only log messages of level "info" or higher;
if you retrieve Loggers by using the class name (e.g. Logger.getLogger(AClass.class))
and if AClass is part of the org.springframework package, it will belong to this category
-->
<logger name="org.springframework">
<level value="info"/>
</logger>
<!--
everything of spring was set to "info" but for class
PropertyEditorRegistrySupport we want "debug" logging
-->
<logger name="org.springframework.beans.PropertyEditorRegistrySupport">
<level value="debug"/>
</logger>
<logger name="org.acegisecurity">
<level value="info"/>
</logger>
<root>
<!--
all log messages of level "debug" or higher will be logged, unless defined otherwise
all log messages will be logged to the appender "stdout", unless defined otherwise
-->
<level value="debug" />
<appender-ref ref="stdout" />
</root>
</log4j:configuration>
TTCCA TTCC egy üzenet formátum, amit a log4j használ.[4] TTCC egy betűszó a Time Thread Category Component-re (magyarul idő/szál/kategória/komponens), amely a következő mintát használja: %r [%t] %-5p %c %x - %m%n Ahol:
Példa a kimenetre Portolások
Kapcsolódó szócikkekJegyzetek
További információk
FordításEz a szócikk részben vagy egészben a log4j című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként. |
Portal di Ensiklopedia Dunia