[Java lista] Tomcat, Log4J naplózás

Verhás István istvan at verhas.com
2007. Május. 7., H, 14:04:13 CEST


Egy kicsit utána jártam a kérdésnek már csak az érdekesség miatt is.
Amit sikerült kihámoznom az a következő. A Tomcat a Commons Logging-t
használja, de az alap konfigurációban a Tomcat JULI-t használja ami nem
más mint a java.util.logging-t használó kiterjesztés pont arra amit Te
is szeretnél vagyis webapp-okénti konfigurációs lehetőséggel csak éppen
nem log4j hanem jul.
Ha a megadott módon bekonfigurálod a log4j attól még az alap
konfigurációja nem változik meg és ezért készíti jul log file-okat is.
Ha a ${catalina.home}/bin/tomcat-juli.jar-t átnevezed akkor ezt meg
tudod szüntetni. Egész pontosan a catalina.out file azért még létrejön
de nem ír bele semmit :-), a többi file-t nem is hozza létre.
Ha webapp-oként szeretnéd konfigurálni a logolást, akkor webapp-oként
tedd a classpath-ba a log4j-XXXX.jar-t és a log4j.properties file-t is.
Az előbbi ugye jó helyen van a a WEB-INF/lib -ben, az utóbbival ha jól
értem az a gondod, hogy nem szeretnéd a war ban benne hanem a deployment
része kéne legyen. Ez elvileg megoldható olyan módon, hogy a
webappclassloader classpath-n megtalálja, amihez az kéne, hogy a war-n
kívüli classpath suffix-t beállítsál (nem tom a tomcat-ben ezt miképpen
kell, de sun java web server-ben ami szintén tomcat alapú van ilyen) a
context.xml-ben.
Webes felületű log konfigot a Jira admin felületén használtam, ami futás
közben módosítja a beállításokat. Csak arra a webapp-ra vonatkozik és
nem menti el a beállításokat, de mintának jó lehet.
üdv
vi


 
On Sat, 2007-05-05 at 22:43 +0200, István Viczián wrote:
> Üdv,
> 
> próbálok egy egységes megoldást kitalálni naplózásra, Tomcat
> web-konténerrel, Log4J-vel, több web-alkalmazással. Alapvető
> elvárásom, hogy fejlesztői gépre és szerverekre is (különböző
> környezetekben, de más log szintekkel) ugyanazt a war-t kelljen
> telepíteni, tehát kizárt hogy különböző war-jaim vannak, benne
> különböző log4j.properties állományaim.
> (Szeretném, ha újraindítás nélkül lehessen módosítani, esetleg webes
> felületen, valamint a logokat szintén webes felületen tudjam nézni.)
> Ebből számomra az a megoldás jött ki, hogy a Tomcat-be állítom be a
> Log4J naplózást, és ott adom meg egységesen az összes web-alkalmazásra
> a beállításokat. Ahogy itt van:
> http://tomcat.apache.org/tomcat-5.5-doc/logging.html (log4j fejezet)
> 
> Kérdéseim:
> - Ez jó elgondolás, vagy van jobb ötlet?
> - Ilyenkor az a bajom, hogyha egy könyvtárat több web-alkalmazásban is
> használok (pl. Struts), akkor hogyan tudom meg, hogy a log melyikből
> jön, hogyan tudom fájlonként szétválasztani?
> - Beállítom a log4j naplózást, de a log könyvtárban az admin,
> catalina, host-manager, localhost és manager fájlok mégis létrejönnek,
> tehát úgy tűnik, hogy mellette megy a java.util.logging naplózás is.
> - Igenám, de ha a saját log4j.properties-emben nem adok meg konzolra
> naplózást, akkor a konzol üres lesz, azaz úgy tűnik, hogy a
> java.util.logging naplózásból csak a fájlosak mennek.
> 
> Valahogy nem értem a kettő viszonyát, valaki tudna segíteni? Lehet
> csak Log4J-t használni? Ha igen, hogy kell konfigurálni, hogy azért a
> megfelelő fájlok ugyanúgy létrejöjjenek? Ráadásul van itt egy
> catalina.out is, rotáció nélkül... A logging.properties számomra
> szintén nem értelmezhető valami. Hogy kell ezt szépen felépíteni több
> web-alkalmazás esetén, és több környezet esetén, ahol mások a
> naplózási követelmények? Ráadásul NetBeans-ben fejlesztek, beépített
> Tomcat-tel, ami a home-omba pakol, de ha a log4j-t állítom be, akkor
> meg a NetBeans telepítési könyvtárába rakja a fájlokat
> (${catalina.home}/logs/ beállítás esetén)...
> 
> Üdv,
> 
> Viczi
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist



További információk a(z) Javalist levelezőlistáról