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