Ahoj,

doporučuji tvojí pozornosti class MDC příp. NDC 
(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.html, 
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/NDC.html). 
Předpokládám že to je to co přesně hledáš.

                   Mirek

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED]
Sent: Thursday, September 25, 2008 3:50 PM
To: konference@java.cz
Subject: log4j & custom Layout


Dobry den,
uz delsi dobu se trapim s problemem rozsiritelnosti log4j. Potreboval bych do 
kazdeho log recordu pridat nejaky identifikator, ceho se tento record tyka - 
tedy napr. pri prichodu JMS zpravy (vetsina komunikace v nasi
aplikaci) z ni vyextrahuju cislo letu, kod aerolinky a datum odletu a tyto data 
ulozim do ThreadLocal. A ted bych chtel, aby tyto informace log4j vypsal. Chtel 
bych tedy mit neco jako PatternLayout s nejakym takovym
patternem:

%-5p [%d{ISO8601}][%t][%C{1}.%M(%L)] %Q %m%n

kde %Q bude odpovidat nejakemu memu potomkovi PatternConverteru, ktery vezme 
informaci z ThreadLocalu a vypise ji. Jake ovsem bylo moje prekvapeni, kdyz 
jsem zjistil, ze PatternParser je prakticky nerozsiritelny. I kdybych se uz 
snizil na prepsani jeho metody parse(), tak narazim, protoze vsechny existujici 
PatternConvertery jsou jaxi private.

Predpokladam, ze to nekdy nekdo uz musel resit! Napadlo me sice par reseni ale 
vsechny jsou tak nejak nepouzitelne anebo pripominaji skrabani se levou rukou 
za pravym uchem (jako treba "nejvic nejinovativnejsi" reseni:
rozparsovani patternu na jednotlive elementy, pruchod chainem Converteru a 
nahrazeni toho, ktery odpovida %Q tim mym).

Predem diky za jakekoliv nakopnuti.
Dan.

Odpovedet emailem