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: [email protected]
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.