logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leo Lima" <onl...@l3o.net>
Subject KeyPoolFileAppender (was Enhanced FileAppender)
Date Thu, 05 Oct 2006 15:02:10 GMT

"Patrick Wyss" <Patrick.Wyss@mobilesolutions.ch> escreveu na mensagem 
news:795BE475DA810C4B80E8CFD07EE8CD1C1ABEE2@srv-ex-2003.duebendorf.autronic.lehmannholding.ch...
> but maybe instead of subclassing FileAppender it would make more sense 
> anyway to use the decorator pattern. =>  "MultiFileAppender" which takes a 
> FileAppender as parameter. so you could wrap it around any existing 
> FileAppenders.

Maybe. I thought about doing that with DailyRollingFileAppender, as my 
'default sink' tends to get over a giga in a week. We could go at that 
direction, too, yes.

> > Fine by me. But I think the default should be a pool and the
> > checks should
> > be done when creating a new file descriptor...

> i think a pool of configurable size is enough. starting new threads in 
> log4j is IMO no good idea anyway...

Why is that no good idea? I think it's great!

I went ahead and did change KeyFileAppender to add 3 getter methods so I 
could extend it and make a KeyPoolFileAppender (no, I'm not creative...).
I did check for the 'Append' attribute, overwritting only if the file hasn't 
been visited yet. And I provided a simple working sample (that I used to 
validate). I don't know what to do next; if I publish it on my website, on 
bugzilla, or what?

Please advise.

Regards,
Leo. 


begin 666 log4j.properties
M;&]G-&HN<F]O=$QO9V=E<CUD96)U9RP@<W1D;W5T+"!A<G$-"FQO9S1J+F%P
M<&5N9&5R+G-T9&]U=#UO<F<N87!A8VAE+FQO9S1J+D-O;G-O;&5!<'!E;F1E
M<@T*;&]G-&HN87!P96YD97(N<W1D;W5T+FQA>6]U=#UO<F<N87!A8VAE+FQO
M9S1J+E!A='1E<FY,87EO=70-"FQO9S1J+F%P<&5N9&5R+G-T9&]U="YL87EO
M=70N0V]N=F5R<VEO;E!A='1E<FX]*"5D*2 E<#H@)6TE;@T*;&]G-&HN87!P
M96YD97(N87)Q/6]R9RYA<&%C:&4N;&]G-&HN2V5Y1FEL95!O;VQ!<'!E;F1E
M<@T*;&]G-&HN87!P96YD97(N87)Q+D%P<&5N9#UF86QS90T*;&]G-&HN87!P
M96YD97(N87)Q+DEM;65D:6%T949L=7-H/71R=64-"FQO9S1J+F%P<&5N9&5R
M+F%R<2Y&:6QE/4,Z+W1E<W1E+W1E<W1E+FQO9PT*;&]G-&HN87!P96YD97(N
M87)Q+FUA>$]P96Y&:6QE<STT#0IL;V<T:BYA<'!E;F1E<BYA<G$N9FEL97-#
M;&5A;E5P/3(-"FQO9S1J+F%P<&5N9&5R+F%R<2YC;VYT97AT2V5Y/71E<W1E
M#0IL;V<T:BYA<'!E;F1E<BYA<G$N;&%Y;W5T/6]R9RYA<&%C:&4N;&]G-&HN
M4&%T=&5R;DQA>6]U= T*;&]G-&HN87!P96YD97(N87)Q+FQA>6]U="Y#;VYV
K97)S:6]N4&%T=&5R;CTH)60I7'0E8WLR?5LE=%TO/3X@)7 Z("5M)6X-"@``
`
end

begin 666 KeyFilePoolAppender.java
M<&%C:V%G92!O<F<N87!A8VAE+FQO9S1J.PT*#0II;7!O<G0@:F%V82YI;RY"
M=69F97)E9%=R:71E<CL-"FEM<&]R="!J879A+FEO+D9I;&5/=71P=713=')E
M86T[#0II;7!O<G0@:F%V82YI;RY)3T5X8V5P=&EO;CL-"FEM<&]R="!J879A
M+FEO+E=R:71E<CL-"FEM<&]R="!J879A+G5T:6PN0V]M<&%R871O<CL-"FEM
M<&]R="!J879A+G5T:6PN2&%S:%-E=#L-"FEM<&]R="!J879A+G5T:6PN271E
M<F%T;W([#0II;7!O<G0@:F%V82YU=&EL+DUA<#L-"FEM<&]R="!J879A+G5T
M:6PN4V5T.PT*:6UP;W)T(&IA=F$N=71I;"Y3;W)T9613970[#0II;7!O<G0@
M:F%V82YU=&EL+E1R9653970[#0H-"FEM<&]R="!O<F<N87!A8VAE+FQO9S1J
M+FAE;'!E<G,N3&]G3&]G.PT*:6UP;W)T(&]R9RYA<&%C:&4N;&]G-&HN:&5L
M<&5R<RY1=6EE=%=R:71E<CL-"FEM<&]R="!O<F<N87!A8VAE+FQO9S1J+G-P
M:2Y%<G)O<DAA;F1L97([#0H-"B\J*@T*("H@06X@97AT96YS:6]N('1O($ME
M>49I;&5!<'!E;F1E<BP@861D:6YG(&$@;6%X(&]P96X@9FEL97,@;&EM:70@
M=&\@:70N(%1A:V5S#0H@*B!T=V\@861D:71I;VYA;"!P87)A;65T97)S.@T*
M("H@/'5L/@T*("H@/&QI/FUA>$]P96Y&:6QE<SH@5&AE(&UA>&EM=6T@;W!E
M;B!F:6QE(&AA;F1L97)S('1H870@<VAO=6QD(&)E(&]P96YE9"!A= T*("H@
M86YY(&=I=F5N('1I;64N(%=H96YE=F5R(&ET(&YE961S('1O(&-R96%T92!A
M(&YE=R!F:6QE:&%N9&QE<BP@:70@8VAE8VMS(&AO=PT*("H@;6%N>2!A<F4@
M;W!E;B!A;F0L(&EF(&YE961E9"P@8VQE86X@=7 @=&AE(&]L9&5R(&9I;&4@
M:&%N9&QE<G,N/"]L:3X-"B J(#QL:3YF:6QE<T-L96%N57 Z(%1H92!N=6UB
M97(@;V8@9FEL97,@=&\@8VQO<V4@=VAE;F5V97(@:70@<VAO=6QD(&-L96%N
M('5P+@T*("H@268@=&AE(&9I;&4@8W)E871I;VX@<F%T:6\@:7,@:&EG:"P@
M=&AI<R!N=6UB97(@<VAO=6QD(&)E(&AI9V@@87,@=V5L;"X@5&AI<PT*("H@
M:7,@<V\@8F5C875S92!T:&4@8VQE86XM=7 @;W!E<F%T:6]N(&ES("AS=7!P
M;W-E9"!T;R!B93\I(&5X<&5N<VEV92P@86YD('1H96X-"B J(&-L;W-E<R!M
M;W)E('1H86X@;VYE(&9I;&4@=&\@<V%V92!T:6UE+B!)(&=U97-S+BXN1F]R
M(&YO(&-L96%N=7 L('-E="!F:6QE<T-L96%N57 @=&\@,"X\+VQI/@T*("H@
M/"]U;#X-"B J( T*("H@#0H@*B! 875T:&]R($QE;R!,:6UA("AO;FQI;F5 
M;#-O+FYE="D-"B J( T*("HO#0IP=6)L:6,@8VQA<W,@2V5Y1FEL95!O;VQ!
M<'!E;F1E<B!E>'1E;F1S($ME>49I;&5!<'!E;F1E<B![#0H-"@DO*BH-"@D@
M*B!4:&4@;6%X:6UU;2!N=6UB97(@;V8@;W!E;B!F:6QE<RX@270@9&5F875L
M=',@=&\@,3 N#0H)("HO#0H)<')I=F%T92!I;G0@;6%X3W!E;D9I;&5S(#T@
M,3 [#0H-"@DO*BH-"@D@*B!4:&4@;G5M8F5R(&]F(&9I;&5S('1O(&-L;W-E
M('=H96YE=F5R('EO=2!N965D('1O(&UA:V4@<F]O;2!F;W(@86YO=&AE<@T*
M"2 J(&9I;&4N(%-H;W5L9"!B92!L97-S('1H86X@;6%X3W!E;D9I;&5S+BXN
M#0H)("HO#0H)<')I=F%T92!I;G0@9FEL97-#;&5A;E5P(#T@,SL-"@T*"2\J
M*@T*"2 J($AO;&1S(&$@<F5F97)E;F-E('1O(&%L;"!V:7-I=&5D(&9I;&5S
M+B!)9B!A('9I<VET960@9FEL92!I<R!R92UO<&5N960L#0H)("H@:70@<VAO
M=6QD(&)E(&%P<&5N9&5D+"!N;R!M871T97(@=VAA="X-"@D@*B\-"@EP<FEV
M871E(%-E="!V:7-I=&5D1FEL97,@/2!N97<@2&%S:%-E="@I.PT*#0H)<'5B
M;&EC(&EN="!G971-87A/<&5N1FEL97,H*2![#0H)"7)E='5R;B!M87A/<&5N
M1FEL97,[#0H)?0T*#0H)<'5B;&EC('9O:60@<V5T36%X3W!E;D9I;&5S*&EN
M="!M87A/<&5N1FEL97,I('L-"@D)=&AI<RYM87A/<&5N1FEL97,@/2!M87A/
M<&5N1FEL97,[#0H)?0T*#0H)<'5B;&EC(&EN="!G971&:6QE<T-L96%N57 H
M*2![#0H)"7)E='5R;B!F:6QE<T-L96%N57 [#0H)?0T*#0H)<'5B;&EC('9O
M:60@<V5T1FEL97-#;&5A;E5P*&EN="!F:6QE<T-L96%N57 I('L-"@D)=&AI
M<RYF:6QE<T-L96%N57 @/2!F:6QE<T-L96%N57 [#0H)?0T*#0H)+RHJ#0H)
M("H@0V%L;&5D('=H96X@;6%X3W!E;D9I;&5S(&ES(')E86-H960N($ET(&-L
M;W-E<R!F:6QE<T-L96%N57 @9FEL97,@870-"@D@*B!O;F-E+@T*"2 J( T*
M"2 J+PT*"7!R;W1E8W1E9"!V;VED(&-L96%N57 H*2![#0H)"6EF("AT:&ES
M+F9I;&5S0VQE86Y5<" \(#$I#0H)"0ER971U<FX[#0H-"@D)36%P('=R:71E
M<G,@/2!G9717<FET97)S*"D[#0H)"6EF("AW<FET97)S+G-I>F4H*2 \('1H
M:7,N;6%X3W!E;D9I;&5S*0T*"0D)<F5T=7)N.PT*#0H)"6EF("AT:&ES+F9I
M;&5S0VQE86Y5<" ]/2 Q*2![#0H)"0ET:&ES+G-I;F=L94-L96%N57 H*3L-
M"@D)"7)E='5R;CL-"@D)?0T*#0H)"5-O<G1E9%-E="!S;W)T9617<FET97)S
M(#T@;F5W(%1R9653970H#0H)"0D);F5W(%1I;65D475I9717<FET97)-87!%
M;G1R>4-O;7!A<F%T;W(H*2D[#0H)"7-O<G1E9%=R:71E<G,N861D06QL*'=R
M:71E<G,N96YT<GE3970H*2D[#0H-"@D)9F]R("AI;G0@83$@/2 P.R!A,2 \
M('1H:7,N9FEL97-#;&5A;E5P.R!A,2LK*2![#0H)"0E-87 N16YT<GD@9FER
M<W0@/2 H36%P+D5N=')Y*2!S;W)T9617<FET97)S+F9I<G-T*"D[#0H)"0ES
M;W)T9617<FET97)S+G)E;6]V92AF:7)S="D[#0H)"0EW<FET97)S+G)E;6]V
M92AF:7)S="YG971+97DH*2D[#0H)"0EC;&]S95=R:71E<B@H475I9717<FET
M97(I(&9I<G-T+F=E=%9A;'5E*"DI.PT*"0E]#0H-"@E]#0H-"@DO*BH-"@D@
M*B!#;&]S97,@=W)I=&5R(&1U92!M87@@;W!E;B!F:6QE<RX@1&]E<VXG="!P
M<FEN="!A;GD@9F]O=&5R+@T*"2 J( T*"2 J($!P87)A;2!W<FET97(-"@D@
M*B\-"@EP<F]T96-T960@=F]I9"!C;&]S95=R:71E<BAF:6YA;"!1=6EE=%=R
M:71E<B!W<FET97(I('L-"@D)=')Y('L-"@D)"6EF("AS=7!E<BYI;6UE9&EA
M=&5&;'5S:"D-"@D)"0EW<FET97(N9FQU<V@H*3L-"@D)"7=R:71E<BYC;&]S
M92@I.PT*"0E](&-A=&-H("A)3T5X8V5P=&EO;B!E*2![#0H)"0E,;V=,;V<N
M97)R;W(H(D-O=6QD(&YO="!C;&]S92 B("L@=W)I=&5R+"!E*3L-"@D)?0T*
M"7T-"@T*"2\J*@T*"2 J(%5S960@=&\@8VQE86X@=7 @=VAE;B!F:6QE<T-L
M96%N57 @:7,@,2X-"@D@*B -"@D@*B\-"@EP<F]T96-T960@=F]I9"!S:6YG
M;&5#;&5A;E5P*"D@>PT*"0EL;VYG(&]L9&5S=%1I;64@/2!3>7-T96TN8W5R
M<F5N=%1I;65-:6QL:7,H*3L-"@D)36%P+D5N=')Y(&]L9&5S=%=R:71E<B ]
M(&YU;&P[#0H-"@D)9F]R("A)=&5R871O<B!I='(@/2!G9717<FET97)S*"DN
M96YT<GE3970H*2YI=&5R871O<B@I.R!I='(N:&%S3F5X="@I.RD@>PT*"0D)
M36%P+D5N=')Y(&UE(#T@*$UA<"Y%;G1R>2D@:71R+FYE>'0H*3L-"@D)"51I
M;65D475I9717<FET97(@=" ]("A4:6UE9%%U:65T5W)I=&5R*2!M92YG9716
M86QU92@I.PT*"0D):68@*'0N9V5T3&%S=%5S960H*2 \(&]L9&5S=%1I;64I
M('L-"@D)"0EO;&1E<W14:6UE(#T@="YG971,87-T57-E9"@I.PT*"0D)"6]L
M9&5S=%=R:71E<B ](&UE.PT*"0D)?0T*"0E]#0H-"@D):68@*&]L9&5S=%=R
M:71E<B A/2!N=6QL*2![#0H)"0EC;&]S95=R:71E<B@H475I9717<FET97(I
M("AO;&1E<W17<FET97(I+F=E=%9A;'5E*"DI.PT*"0D)9V5T5W)I=&5R<R@I
M+G)E;6]V92AO;&1E<W17<FET97(N9V5T2V5Y*"DI.PT*"0E]#0H)?0T*#0H)
M+RHJ#0H)("H@0W)E871E<R!T:&4@<75I970@=W)I=&5R(&9O<B!T:&4@9VEV
M96X@:V5Y('9A;'5E+B!5<V5S('1H92!S86UE('!R;W!E<G1Y#0H)("H@*&)U
M9F9E<FEN9RP@87!P96YD+"!E=&,N*2!A<R!T:&4@;6%I;B!W<FET97(N($-L
M96%N<R!U<"!B969O<F4@8W)E871I;F<@80T*"2 J(&YE=R!1=6EE=%=R:71E
M<BX-"@D@*B -"@D@*B! <&%R86T@8V]N=&5X=$ME>59A;'5E#0H)("H@(" @
M(" @(" @("!4:&4@:V5Y('9A;'5E#0H)("H@0')E='5R;B!1=6EE=%=R:71E
M<@T*"2 J($!T:')O=W,@24]%>&-E<'1I;VX-"@D@*B @(" @(" @(" @("!)
M9B!A;B!E<G)O<B!O8V-U<G,@8W)E871I;F<@=W)I=&5R#0H)("HO#0H)<')O
M=&5C=&5D(%%U:65T5W)I=&5R(&-R96%T95=R:71E<D9O<DME>2A/8FIE8W0@
M8V]N=&5X=$ME>59A;'5E*0T*"0D)=&AR;W=S($E/17AC97!T:6]N('L-"@D)
M:68@*&-O;G1E>'1+97E686QU92 ]/2!N=6QL*2![#0H)"0ER971U<FX@<W5P
M97(N<7<[#0H)"7T@96QS92![#0H)"0E3=')I;F<@:V5Y1FEL94YA;64@/2!G
M971"87-E1FEL94YA;64H*2 K(&-O;G1E>'1+97E686QU92YT;U-T<FEN9R@I
M#0H)"0D)"2L@9V5T1FEL945X=&5N<VEO;B@I.PT*"0D)3&]G3&]G+F1E8G5G
M*")'96YE<F%T:6YG(&YE=R!W<FET97(@9F]R(&9I;&5N86UE(%LB("L@:V5Y
M1FEL94YA;64-"@D)"0D)*R B72(I.PT*"0D)=&AI<RYC;&5A;E5P*"D[#0H)
M"0EB;V]L96%N('-H;W5L9$%P<&5N9" ](&=E=$%P<&5N9"@I#0H)"0D)"7Q\
M('9I<VET961&:6QE<RYC;VYT86EN<RAK97E&:6QE3F%M92D[#0H-"@D)"5=R
M:71E<B!F=R ](&-R96%T95=R:71E<BAN97<@1FEL94]U='!U=%-T<F5A;2AK
M97E&:6QE3F%M92P-"@D)"0D)<VAO=6QD07!P96YD*2D[#0H)"0EV:7-I=&5D
M1FEL97,N861D*&ME>49I;&5.86UE*3L-"@D)"6EF("AG971"=69F97)E9$E/
M*"DI('L-"@D)"0EF=R ](&YE=R!"=69F97)E9%=R:71E<BAF=RP@8G5F9F5R
M4VEZ92D[#0H)"0E]#0H-"@D)"51I;65D475I9717<FET97(@:V5Y5W)I=&5R
M(#T@;F5W(%1I;65D475I9717<FET97(H9G<L(&5R<F]R2&%N9&QE<BD[#0H-
M"@D)"7-E=%=R:71E<D9O<DME>2AC;VYT97AT2V5Y5F%L=64L(&ME>5=R:71E
M<BD[#0H-"@D)"7)E='5R;B!K97E7<FET97([#0H)"7T-"@E]#0H-"@EP<FEV
M871E('-T871I8R!C;&%S<R!4:6UE9%%U:65T5W)I=&5R36%P16YT<GE#;VUP
M87)A=&]R(&EM<&QE;65N=',-"@D)"4-O;7!A<F%T;W(@>PT*#0H)"7!U8FQI
M8R!I;G0@8V]M<&%R92A/8FIE8W0@87)G,"P@3V)J96-T(&%R9S$I('L-"@D)
M"51I;65D475I9717<FET97(@=# @/2 H5&EM9611=6EE=%=R:71E<BD@*"@H
M36%P+D5N=')Y*2!A<F<P*0T*"0D)"0DN9V5T5F%L=64H*2D[#0H)"0E4:6UE
M9%%U:65T5W)I=&5R('0Q(#T@*%1I;65D475I9717<FET97(I("@H*$UA<"Y%
M;G1R>2D@87)G,2D-"@D)"0D)+F=E=%9A;'5E*"DI.PT*"0D)<F5T=7)N('0P
M+F-O;7!A<F54;RAT,2D[#0H)"7T-"@T*"7T-"@T*"7!R:79A=&4@<W1A=&EC
M(&-L87-S(%1I;65D475I9717<FET97(@97AT96YD<R!1=6EE=%=R:71E<B!I
M;7!L96UE;G1S#0H)"0E#;VUP87)A8FQE('L-"@T*"0EP<FEV871E(&QO;F<@
M;&%S=%5S960[#0H-"@D)<'5B;&EC(%1I;65D475I9717<FET97(H5W)I=&5R
M(&%R9S L($5R<F]R2&%N9&QE<B!A<F<Q*2![#0H)"0ES=7!E<BAA<F<P+"!A
M<F<Q*3L-"@D)"71H:7,N;&%S=%5S960@/2!3>7-T96TN8W5R<F5N=%1I;65-
M:6QL:7,H*3L-"@D)?0T*#0H)"7!R;W1E8W1E9"!V;VED(')E9G)E<VA5<V5D
M*"D@>PT*"0D)=&AI<RYL87-T57-E9" ](%-Y<W1E;2YC=7)R96YT5&EM94UI
M;&QI<R@I.PT*"0E]#0H-"@D)<'5B;&EC(&QO;F<@9V5T3&%S=%5S960H*2![
M#0H)"0ER971U<FX@;&%S=%5S960[#0H)"7T-"@T*"0EP=6)L:6,@5W)I=&5R
M(&%P<&5N9"AC:&%R(&,I('1H<F]W<R!)3T5X8V5P=&EO;B![#0H)"0ET:&ES
M+G)E9G)E<VA5<V5D*"D[#0H)"0ER971U<FX@<W5P97(N87!P96YD*&,I.PT*
M"0E]#0H-"@D)<'5B;&EC(%=R:71E<B!A<'!E;F0H0VAA<E-E<75E;F-E(&-S
M<2D@=&AR;W=S($E/17AC97!T:6]N('L-"@D)"71H:7,N<F5F<F5S:%5S960H
M*3L-"@D)"7)E='5R;B!S=7!E<BYA<'!E;F0H8W-Q*3L-"@D)?0T*#0H)"7!U
M8FQI8R!7<FET97(@87!P96YD*$-H87)397%U96YC92!C<W$L(&EN="!S=&%R
M="P@:6YT(&5N9"D-"@D)"0ET:')O=W,@24]%>&-E<'1I;VX@>PT*"0D)=&AI
M<RYR969R97-H57-E9"@I.PT*"0D)<F5T=7)N('-U<&5R+F%P<&5N9"AC<W$L
M('-T87)T+"!E;F0I.PT*"0E]#0H-"@D)<'5B;&EC('9O:60@=W)I=&4H8VAA
M<EM=(&-B=68I('1H<F]W<R!)3T5X8V5P=&EO;B![#0H)"0ET:&ES+G)E9G)E
M<VA5<V5D*"D[#0H)"0ES=7!E<BYW<FET92AC8G5F*3L-"@D)?0T*#0H)"7!U
M8FQI8R!V;VED('=R:71E*&-H87);72!C8G5F+"!I;G0@;V9F+"!I;G0@;&5N
M*2!T:')O=W,@24]%>&-E<'1I;VX@>PT*"0D)=&AI<RYR969R97-H57-E9"@I
M.PT*"0D)<W5P97(N=W)I=&4H8V)U9BP@;V9F+"!L96XI.PT*"0E]#0H-"@D)
M<'5B;&EC('9O:60@=W)I=&4H:6YT(&,I('1H<F]W<R!)3T5X8V5P=&EO;B![
M#0H)"0ET:&ES+G)E9G)E<VA5<V5D*"D[#0H)"0ES=7!E<BYW<FET92AC*3L-
M"@D)?0T*#0H)"7!U8FQI8R!V;VED('=R:71E*%-T<FEN9R!S='(L(&EN="!O
M9F8L(&EN="!L96XI('1H<F]W<R!)3T5X8V5P=&EO;B![#0H)"0ET:&ES+G)E
M9G)E<VA5<V5D*"D[#0H)"0ES=7!E<BYW<FET92AS='(L(&]F9BP@;&5N*3L-
M"@D)?0T*#0H)"7!U8FQI8R!V;VED('=R:71E*%-T<FEN9R!S=')I;F<I('L-
M"@D)"71H:7,N<F5F<F5S:%5S960H*3L-"@D)"7-U<&5R+G=R:71E*'-T<FEN
M9RD[#0H)"7T-"@T*"0EP=6)L:6,@:6YT(&-O;7!A<F54;RA/8FIE8W0@87)G
M,"D@>PT*"0D):68@*&%R9S @/3T@;G5L;"D-"@D)"0ER971U<FX@,3L-"@D)
M"6EF("AT:&ES+F5Q=6%L<RAA<F<P*2D-"@D)"0ER971U<FX@,#L-"@D)"6EF
M("AA<F<P(&EN<W1A;F-E;V8@5&EM9611=6EE=%=R:71E<BD@>PT*"0D)"7)E
M='5R;B H:6YT*2!-871H+G-I9VYU;2AT:&ES+FQA<W15<V5D#0H)"0D)"0DM
M("@H5&EM9611=6EE=%=R:71E<BD@87)G,"DN9V5T3&%S=%5S960H*2D[#0H)
M"0E]#0H)"0ET:')O=R!N97<@0VQA<W-#87-T17AC97!T:6]N*&%R9S N9V5T
D0VQA<W,H*2YT;U-T<FEN9R@I*3L-"@D)?0T*#0H)?0T*?0T*
`
end

begin 666 KeyFileAppender.java
M+RH-"B J($-O<'ER:6=H=" H0RD@5&AE($%P86-H92!3;V9T=V%R92!&;W5N
M9&%T:6]N+B!!;&P@<FEG:'1S(')E<V5R=F5D+@T*("H-"B J(%1H:7,@<V]F
M='=A<F4@:7,@<'5B;&ES:&5D('5N9&5R('1H92!T97)M<R!O9B!T:&4@07!A
M8VAE(%-O9G1W87)E#0H@*B!,:6-E;G-E('9E<G-I;VX@,2XQ+"!A(&-O<'D@
M;V8@=VAI8V@@:&%S(&)E96X@:6YC;'5D960@=VET:"!T:&ES#0H@*B!D:7-T
M<FEB=71I;VX@:6X@=&AE($Q)0T5.4T4N='AT(&9I;&4N#0H@*B\-"@T*<&%C
M:V%G92!O<F<N87!A8VAE+FQO9S1J.PT*#0II;7!O<G0@:F%V82YI;RY"=69F
M97)E9%=R:71E<CL-"FEM<&]R="!J879A+FEO+DE/17AC97!T:6]N.PT*:6UP
M;W)T(&IA=F$N:6\N1FEL94]U='!U=%-T<F5A;3L-"FEM<&]R="!J879A+FEO
M+E=R:71E<CL-"@T*:6UP;W)T(&IA=F$N=71I;"Y)=&5R871O<CL-"FEM<&]R
M="!J879A+G5T:6PN36%P.PT*#0II;7!O<G0@;W)G+F%P86-H92YL;V<T:BYH
M96QP97)S+DQO9TQO9SL-"FEM<&]R="!O<F<N87!A8VAE+FQO9S1J+FAE;'!E
M<G,N475I9717<FET97([#0II;7!O<G0@;W)G+F%P86-H92YL;V<T:BYS<&DN
M3&]G9VEN9T5V96YT.PT*#0HO*BH-"B J($ME>49I;&5!<'!E;F1E<B!A<'!E
M;F1E<G,@=&\@;75L=&EP;&4@9FEL97,@8F%S960@;VX@=&AE('9A;'5E(&]F
M(&%N($U$0R!K97DN#0H@*B!4:&4@:V5Y(&YA;64@:7,@8V]N9FEG=7)A8FQE
M+B!)9B!T:&4@:V5Y('9A;'5E(&ES(&YU;&P@;W(@=&AE<F4@:7,@;F\@341#
M(&EN#0H@*B!T:&4@;&]G9VEN9R!E=F5N="P@=&AE(&1E9F%U;'0@9FEL92!S
M:6YK(&ES('5S960N#0H@*B -"B J("A,96\@3&EM82!A9&1E9" S('1H92!G
M971T97(@;65T:&]D<R!I;B!T:&4@96YD*0T*("H@0&%U=&AO<B!9;V%V(%-H
M87!I<F$L(%-T979E($5B97)S;VQE#0H@*B\-"G!U8FQI8R!C;&%S<R!+97E&
M:6QE07!P96YD97(@97AT96YD<R!&:6QE07!P96YD97(@>PT*"2\J*@T*"2 J
M($UA<"!O9B!A9&1I=&EO;F%L(&9I;&4@<VEN:W,N(%1H:7,@;6%P(&1O97,@
M;F]T(&EN8VQU9&4@=&AE(&1E9F%U;'0@9FEL90T*"2 J('-I;FLN(%1H92!M
M87 @:V5Y<R!A<F4@=&AE(&QO9V=I;F<@979E;G0@341#(&ME>2!V86QU97,N
M#0H)("HO#0H)<')I=F%T92!-87 @=W)I=&5R<R ](&YE=R!J879A+G5T:6PN
M2&%S:$UA<"@I.PT*#0H)+RHJ#0H)("H@5&AE(&ME>2!T;R!L;V]K(&9O<B!I
M;B!T:&4@341#+@T*"2 J+PT*"7!R:79A=&4@4W1R:6YG(&-O;G1E>'1+97D[
M#0H-"@DO*BH-"@D@*B!3;VUE('!R:79A=&4@=F%R:6%B;&5S('1O(&AE;' @
M8G5I;&0@=&AE(&9I;&5N86UE+@T*"2 J+PT*"7!R:79A=&4@4W1R:6YG(&)A
M<V5&:6QE3F%M93L-"@T*"7!R:79A=&4@4W1R:6YG(&9I;&5%>'1E;G-I;VX[
M#0H-"@DO*BH-"@D@*B!$969A=6QT(&-O;G-T<G5C=&]R+@T*"2 J+PT*"7!U
M8FQI8R!+97E&:6QE07!P96YD97(H*2![#0H)"7-U<&5R*"D[#0H)?0T*#0H)
M+RHJ#0H)("H@4V5E($9I;&5!<'!E;F1E<BX-"@D@*B -"@D@*B! <&%R86T@
M;&%Y;W5T#0H)("H@(" @(" @(" @("!4:&4@8V]N=F5R<VEO;B!L87EO=70-
M"@D@*B! <&%R86T@9FEL96YA;64-"@D@*B @(" @(" @(" @(%1H92!F:6QE
M(&YA;64-"@D@*B! <&%R86T@87!P96YD#0H)("H@(" @(" @(" @("!7:&5T
M:&5R('1O(&%P<&5N9"!O<B!R96-R96%T92!F:6QE#0H)("H@0'!A<F%M(&)U
M9F9E<F5D24\-"@D@*B @(" @(" @(" @(%=H971H97(@=&\@=7-E(&)U9F9E
M<F5D($E/#0H)("H@0'!A<F%M(&)U9F9E<E-I>F4-"@D@*B @(" @(" @(" @
M(%1H92!B=69F97(@<VEZ92!B969O<F4@=W)I=&EN9PT*"2 J($!T:')O=W,@
M24]%>&-E<'1I;VX-"@D@*B @(" @(" @(" @("!)9B!A;B!E<G)O<B!O8V-U
M<G,@<V5T=&EN9R!T:&4@9FEL90T*"2 J+PT*"7!U8FQI8R!+97E&:6QE07!P
M96YD97(H3&%Y;W5T(&QA>6]U="P@4W1R:6YG(&9I;&5N86UE+"!B;V]L96%N
M(&%P<&5N9"P-"@D)"6)O;VQE86X@8G5F9F5R961)3RP@:6YT(&)U9F9E<E-I
M>F4I('1H<F]W<R!)3T5X8V5P=&EO;B![#0H)"7-U<&5R*&QA>6]U="P@9FEL
M96YA;64L(&%P<&5N9"P@8G5F9F5R961)3RP@8G5F9F5R4VEZ92D[#0H)?0T*
M#0H)+RHJ#0H)("H@4V5E($9I;&5!<'!E;F1E<BX-"@D@*B -"@D@*B! <&%R
M86T@;&%Y;W5T#0H)("H@(" @(" @(" @("!4:&4@8V]N=F5R<VEO;B!L87EO
M=70-"@D@*B! <&%R86T@9FEL96YA;64-"@D@*B @(" @(" @(" @(%1H92!F
M:6QE(&YA;64-"@D@*B! <&%R86T@87!P96YD#0H)("H@(" @(" @(" @("!7
M:&5T:&5R('1O(&%P<&5N9"!O<B!R96-R96%T92!F:6QE#0H)("H@0'1H<F]W
M<R!)3T5X8V5P=&EO;@T*"2 J(" @(" @(" @(" @($EF(&%N(&5R<F]R(&]C
M8W5R<R!S971T:6YG('1H92!F:6QE#0H)("HO#0H)<'5B;&EC($ME>49I;&5!
M<'!E;F1E<BA,87EO=70@;&%Y;W5T+"!3=')I;F<@9FEL96YA;64L(&)O;VQE
M86X@87!P96YD*0T*"0D)=&AR;W=S($E/17AC97!T:6]N('L-"@D)<W5P97(H
M;&%Y;W5T+"!F:6QE;F%M92P@87!P96YD*3L-"@E]#0H-"@DO*BH-"@D@*B!3
M964@1FEL94%P<&5N9&5R+@T*"2 J( T*"2 J($!P87)A;2!L87EO=70-"@D@
M*B @(" @(" @(" @(%1H92!C;VYV97)S:6]N(&QA>6]U= T*"2 J($!P87)A
M;2!F:6QE;F%M90T*"2 J(" @(" @(" @(" @5&AE(&9I;&4@;F%M90T*"2 J
M($!T:')O=W,@24]%>&-E<'1I;VX-"@D@*B @(" @(" @(" @("!)9B!A;B!E
M<G)O<B!O8V-U<G,@<V5T=&EN9R!T:&4@9FEL90T*"2 J+PT*"7!U8FQI8R!+
M97E&:6QE07!P96YD97(H3&%Y;W5T(&QA>6]U="P@4W1R:6YG(&9I;&5N86UE
M*2!T:')O=W,@24]%>&-E<'1I;VX@>PT*"0ET:&ES*&QA>6]U="P@9FEL96YA
M;64L('1R=64I.PT*"7T-"@T*"2\J*@T*"2 J(%-E=',@=&AE(&-O;G1E>'0@
M:V5Y+@T*"2 J( T*"2 J($!P87)A;2!C;VYT97AT2V5Y#0H)("H@(" @(" @
M(" @("!4:&4@8V]N=&5X="!K97D-"@D@*B\-"@EP=6)L:6,@=F]I9"!S971#
M;VYT97AT2V5Y*%-T<FEN9R!C;VYT97AT2V5Y*2![#0H)"71H:7,N8V]N=&5X
M=$ME>2 ](&-O;G1E>'1+97D[#0H)?0T*#0H)+RHJ#0H)("H@4F5T=7)N<R!T
M:&4@8V]N=&5X="!K97DL(&EF(&%N>2X-"@D@*B -"@D@*B! <F5T=7)N(%-T
M<FEN9R!-87D@8F4@;G5L; T*"2 J+PT*"7!U8FQI8R!3=')I;F<@9V5T0V]N
M=&5X=$ME>2@I('L-"@D)<F5T=7)N(&-O;G1E>'1+97D[#0H)?0T*#0H)+RHJ
M#0H)("H@4F5T=7)N<R!T:&4@5W)I=&5R(&%S<V]C:6%T960@=VET:"!T:&4@
M9VEV96X@8V]N=&5X="!K97D@=F%L=64N($UA>0T*"2 J(')E='5R;B!N=6QL
M+@T*"2 J( T*"2 J($!P87)A;2!C;VYT97AT2V5Y5F%L=64-"@D@*B @(" @
M(" @(" @(%1H92!K97D@=F%L=64-"@D@*B! <F5T=7)N(%%U:65T5W)I=&5R
M#0H)("HO#0H)<')O=&5C=&5D(%%U:65T5W)I=&5R(&=E=%=R:71E<D9O<DME
M>2A/8FIE8W0@8V]N=&5X=$ME>59A;'5E*2![#0H)"6EF("AC;VYT97AT2V5Y
M5F%L=64@/3T@;G5L;"D@>PT*"0D)<F5T=7)N('%W.PT*"0E](&5L<V4@>PT*
M"0D)<F5T=7)N("A1=6EE=%=R:71E<BD@=W)I=&5R<RYG970H8V]N=&5X=$ME
M>59A;'5E*3L-"@D)?0T*"7T-"@T*"2\J*@T*"2 J(%-E=',@=&AE(%=R:71E
M<B!F;W(@=&AE(&=I=F5N(&ME>2!V86QU92X-"@D@*B -"@D@*B! <&%R86T@
M8V]N=&5X=$ME>59A;'5E#0H)("H@(" @(" @(" @("!4:&4@:V5Y('9A;'5E
M#0H)("H@0'!A<F%M('=R:71E<@T*"2 J(" @(" @(" @(" @5&AE('=R:71E
M<@T*"2 J+PT*"7!R;W1E8W1E9"!V;VED('-E=%=R:71E<D9O<DME>2A/8FIE
M8W0@8V]N=&5X=$ME>59A;'5E+"!1=6EE=%=R:71E<B!W<FET97(I('L-"@D)
M=W)I=&5R<RYP=70H8V]N=&5X=$ME>59A;'5E+"!W<FET97(I.PT*"7T-"@T*
M"2\J*@T*"2 J($-R96%T97,@=&AE('%U:65T('=R:71E<B!F;W(@=&AE(&=I
M=F5N(&ME>2!V86QU92X@57-E<R!T:&4@<V%M92!P<F]P97)T>0T*"2 J("AB
M=69F97)I;F<L(&%P<&5N9"P@971C+BD@87,@=&AE(&UA:6X@=W)I=&5R+@T*
M"2 J( T*"2 J($!P87)A;2!C;VYT97AT2V5Y5F%L=64-"@D@*B @(" @(" @
M(" @(%1H92!K97D@=F%L=64-"@D@*B! <F5T=7)N(%%U:65T5W)I=&5R#0H)
M("H@0'1H<F]W<R!)3T5X8V5P=&EO;@T*"2 J(" @(" @(" @(" @($EF(&%N
M(&5R<F]R(&]C8W5R<R!C<F5A=&EN9R!W<FET97(-"@D@*B\-"@EP<F]T96-T
M960@475I9717<FET97(@8W)E871E5W)I=&5R1F]R2V5Y*$]B:F5C="!C;VYT
M97AT2V5Y5F%L=64I#0H)"0ET:')O=W,@24]%>&-E<'1I;VX@>PT*"0EI9B H
M8V]N=&5X=$ME>59A;'5E(#T](&YU;&PI('L-"@D)"2\O(%-H;W5L9"!W92!R
M971U<FX@=&AI<RYQ=S\-"@D)"2\O(')E='5R;B!N=6QL.PT*"0D)+R\@22!S
M87D@>65S+BXN(%1H:7,@=V]R:V5D('=E;&P@:6X@;7D@=&5S=',-"@D)"7)E
M='5R;B!S=7!E<BYQ=SL-"@D)?2!E;'-E('L-"@D)"5-T<FEN9R!K97E&:6QE
M3F%M92 ](&)A<V5&:6QE3F%M92 K(&-O;G1E>'1+97E686QU92YT;U-T<FEN
M9R@I#0H)"0D)"2L@9FEL945X=&5N<VEO;CL-"@D)"4QO9TQO9RYD96)U9R@B
M1V5N97)A=&EN9R!N97<@=W)I=&5R(&9O<B!F:6QE;F%M92!;(B K(&ME>49I
M;&5.86UE#0H)"0D)"2L@(ETB*3L-"@D)"5=R:71E<B!F=R ](&-R96%T95=R
M:71E<BAN97<@1FEL94]U='!U=%-T<F5A;2AK97E&:6QE3F%M92P-"@D)"0D)
M9V5T07!P96YD*"DI*3L-"@D)"6EF("AG971"=69F97)E9$E/*"DI('L-"@D)
M"0EF=R ](&YE=R!"=69F97)E9%=R:71E<BAF=RP@8G5F9F5R4VEZ92D[#0H)
M"0E]#0H-"@D)"5%U:65T5W)I=&5R(&ME>5=R:71E<B ](&YE=R!1=6EE=%=R
M:71E<BAF=RP@97)R;W)(86YD;&5R*3L-"@T*"0D)<V5T5W)I=&5R1F]R2V5Y
M*&-O;G1E>'1+97E686QU92P@:V5Y5W)I=&5R*3L-"@T*"0D)<F5T=7)N(&ME
M>5=R:71E<CL-"@D)?0T*"7T-"@T*"2\J*@T*"2 J($-L;W-E<R!T:&4@9FEL
M97,N#0H)("HO#0H)<')O=&5C=&5D('9O:60@8VQO<V5&:6QE*"D@>PT*"0ES
M=7!E<BYC;&]S949I;&4H*3L-"@T*"0EF;W(@*$ET97)A=&]R(&ET<B ]('=R
M:71E<G,N96YT<GE3970H*2YI=&5R871O<B@I.R!I='(N:&%S3F5X="@I.RD@
M>PT*"0D)9FEN86P@475I9717<FET97(@=W)I=&5R(#T@*%%U:65T5W)I=&5R
M*2 H*$UA<"Y%;G1R>2D@:71R+FYE>'0H*2D-"@D)"0D)+F=E=%9A;'5E*"D[
M#0H)"0ET<GD@>PT*"0D)"7=R:71E<BYW<FET92AS=7!E<BYL87EO=70N9V5T
M1F]O=&5R*"DI.PT*"0D)"6EF("AS=7!E<BYI;6UE9&EA=&5&;'5S:"D-"@D)
M"0D)=W)I=&5R+F9L=7-H*"D[#0H)"0D)=W)I=&5R+F-L;W-E*"D[#0H)"0E]
M(&-A=&-H("A)3T5X8V5P=&EO;B!E*2![#0H)"0D)3&]G3&]G+F5R<F]R*")#
M;W5L9"!N;W0@8VQO<V4@(B K('=R:71E<BP@92D[#0H)"0E]#0H)"7T-"@E]
M#0H-"@DO*BH-"@D@*B!#;&]S92!A;GD@<')E=FEO=7-L>2!O<&5N960@9FEL
M92!A;F0@8V%L;"!T:&4@<&%R96YT)W,@/&-O9&4^<F5S970\+V-O9&4^+@T*
M"2 J+PT*"7!R;W1E8W1E9"!V;VED(')E<V5T*"D@>PT*"0ES=7!E<BYR97-E
M="@I.PT*"0ET:&ES+G=R:71E<G,N8VQE87(H*3L-"@E]#0H-"@DO*BH-"@D@
M*B!7<FET97,@=&AE(&=I=F5N(&5V96YT('1O('1H92!A<'!R;W!R:6%T92!L
M;V<N($-R96%T97,@=&AE(&%P<')O<')I871E#0H)("H@;&]G(&EF(&YE961E
M9"X-"@D@*B -"@D@*B!/=F5R<FED97,@5W)I=&5R07!P96YD97(C<W5B07!P
M96YD*$QO9V=I;F=%=F5N="D-"@D@*B -"@D@*B! <&%R86T@979E;G0-"@D@
M*B @(" @(" @(" @(%1H92!L;V=G:6YG(&5V96YT#0H)("HO#0H)<')O=&5C
M=&5D('9O:60@<W5B07!P96YD*$QO9V=I;F=%=F5N="!E=F5N="D@>PT*"0E/
M8FIE8W0@8V]N=&5X=$ME>59A;'5E(#T@9V5T0V]N=&5X=$ME>59A;'5E*&5V
M96YT*3L-"@D)475I9717<FET97(@=&AE5W)I=&5R(#T@9V5T5W)I=&5R1F]R
M2V5Y*&-O;G1E>'1+97E686QU92D[#0H-"@D):68@*"AT:&57<FET97(@/3T@
M;G5L;"D@)B8@*&-O;G1E>'1+97E686QU92 A/2!N=6QL*2D@>PT*"0D)=')Y
M('L-"@D)"0ET:&57<FET97(@/2!C<F5A=&57<FET97)&;W)+97DH8V]N=&5X
M=$ME>59A;'5E*3L-"@D)"7T@8V%T8V@@*$E/17AC97!T:6]N(&4I('L-"@D)
M"0E,;V=,;V<N97)R;W(H(D-O=6QD(&YO="!C<F5A=&4@=W)I=&5R(&9O<B B
M("L@8V]N=&5X=$ME>59A;'5E+ T*"0D)"0D)92D[#0H)"0D)=&AE5W)I=&5R
M(#T@=&AI<RYQ=SL-"@D)"7T-"@D)?0T*#0H)"71H95=R:71E<BYW<FET92AT
M:&ES+FQA>6]U="YF;W)M870H979E;G0I*3L-"@T*"0EI9B H;&%Y;W5T+FEG
M;F]R97-4:')O=V%B;&4H*2D@>PT*"0D)4W1R:6YG6UT@<R ](&5V96YT+F=E
M=%1H<F]W86)L95-T<E)E<"@I.PT*"0D):68@*',@(3T@;G5L;"D@>PT*"0D)
M"6EN="!L96X@/2!S+FQE;F=T:#L-"@D)"0EF;W(@*&EN="!I(#T@,#L@:2 \
M(&QE;CL@:2LK*2![#0H)"0D)"71H95=R:71E<BYW<FET92AS6VE=*3L-"@D)
M"0D)=&AE5W)I=&5R+G=R:71E*$QA>6]U="Y,24Y%7U-%4"D[#0H)"0D)?0T*
M"0D)?0T*"0E]#0H-"@D):68@*'1H:7,N:6UM961I871E1FQU<V@I('L-"@D)
M"71H95=R:71E<BYF;'5S:"@I.PT*"0E]#0H)?0T*#0H)+RHJ#0H)("H@1V5T
M<R!T:&4@8V]N=&5X="!K97D@=F%L=64@9G)O;2!T:&4@9VEV96X@;&]G9VEN
M9R!E=F5N="X-"@D@*B -"@D@*B! <&%R86T@979E;G0-"@D@*B @(" @(" @
M(" @(%1H92!L;V=G:6YG(&5V96YT#0H)("H@0')E='5R;B!/8FIE8W0@36%Y
M(&)E(&YU;&P-"@D@*B\-"@EP<F]T96-T960@3V)J96-T(&=E=$-O;G1E>'1+
M97E686QU92A,;V=G:6YG179E;G0@979E;G0I('L-"@D):68@*&5V96YT(#T]
M(&YU;&PI('L-"@D)"7)E='5R;B!N=6QL.PT*"0E]#0H-"@D):68@*&=E=$-O
M;G1E>'1+97DH*2 ]/2!N=6QL*2![#0H)"0ER971U<FX@;G5L;#L-"@D)?0T*
M#0H)"7)E='5R;B!E=F5N="YG971-1$,H9V5T0V]N=&5X=$ME>2@I*3L-"@E]
M#0H-"@DO*BH-"@D@*B!/=F5R<FED92!T:&4@>T!L:6YK($9I;&5!<'!E;F1E
M<B-A8W1I=F%T94]P=&EO;G-](&UE=&AO9"P@;6%I;FQY('-O('1H90T*"2 J
M(&9I;&5N86UE(&-A;B!B92!S<&QI="!U<"X@4W5P97(N86-T:79A=&5/<'1I
M;VYS*"D@:7,@8V%L;&5D(&9I<G-T+@T*"2 J+PT*"7!U8FQI8R!V;VED(&%C
M=&EV871E3W!T:6]N<R@I('L-"@D)<W5P97(N86-T:79A=&5/<'1I;VYS*"D[
M#0H-"@D)4W1R:6YG(&9I;&5N86UE(#T@<W5P97(N9V5T1FEL92@I.PT*"0EI
M9B H9FEL96YA;64@(3T@;G5L;"D@>PT*"0D):6YT(&1O=$EN9'@@/2!S=7!E
M<BYG971&:6QE*"DN;&%S=$EN9&5X3V8H)RXG*3L-"@D)"6EF("AD;W1);F1X
M(#X@,"D@>PT*"0D)"6)A<V5&:6QE3F%M92 ](&9I;&5N86UE+G-U8G-T<FEN
M9R@P+"!D;W1);F1X*2 K("(N(CL-"@D)"0EF:6QE17AT96YS:6]N(#T@(BXB
M("L@9FEL96YA;64N<W5B<W1R:6YG*&1O=$EN9'@@*R Q*3L-"@D)"7T@96QS
M92![#0H)"0D)8F%S949I;&5.86UE(#T@9FEL96YA;64[#0H)"0D)9FEL945X
M=&5N<VEO;B ]("(B.PT*"0D)?0T*"0E]#0H)?0T*"0T*"7!R;W1E8W1E9"!3
M=')I;F<@9V5T0F%S949I;&5.86UE*"D@>PT*"0ER971U<FX@8F%S949I;&5.
M86UE.PT*"7T-"@EP<F]T96-T960@4W1R:6YG(&=E=$9I;&5%>'1E;G-I;VXH
M*2![#0H)"7)E='5R;B!F:6QE17AT96YS:6]N.PT*"7T-"@EP<F]T96-T960@
M36%P(&=E=%=R:71E<G,H*2![#0H)"7)E='5R;B!T:&ES+G=R:71E<G,[#0H)
&?0T*#0I]
`
end

begin 666 ThreadTest.java
M<&%C:V%G92!N970N;#-O+FME>49I;&50;V]L07!P96YD97(N=&5S=#L-"FEM
M<&]R="!O<F<N87!A8VAE+FQO9S1J+DQO9V=E<CL-"FEM<&]R="!O<F<N87!A
M8VAE+FQO9S1J+DU$0SL-"@T*#0IP=6)L:6,@8VQA<W,@5&AR96%D5&5S="!E
M>'1E;F1S(%1H<F5A9"![#0H-"@EP<FEV871E('-T871I8R!F:6YA;"!,;V=G
M97(@;&]G9V5R(#T@3&]G9V5R+F=E=$QO9V=E<BA4:')E861497-T+F-L87-S
M*3L-"@D-"@EP=6)L:6,@=F]I9"!R=6XH*2![#0H)"6EN="!C;W5N=" ](# [
M#0H)"4U$0RYP=70H(G1E<W1E(BP@=&AI<RYG971.86UE*"DI.PT*"0EW:&EL
M92AT<G5E*2![#0H)"0EL;V=G97(N:6YF;R@B5&5S="!M97-S86=E(",B("L@
M*"LK8V]U;G0I("L@(B!F<F]M("(@*R!-1$,N9V5T*")T97-T92(I*3L-"@D)
M"71R>2![#0H)"0D)5&AR96%D+G-L965P*#$P,# P*3L-"@D)"7T@8V%T8V@@
M*$EN=&5R<G5P=&5D17AC97!T:6]N(&4I('L-"@D)"7T-"@D)?0T*"7T-"GT-
!"@``
`
end

begin 666 Main.java
M<&%C:V%G92!N970N;#-O+FME>49I;&50;V]L07!P96YD97(N=&5S=#L-"FEM
M<&]R="!J879A+FEO+D)U9F9E<F5D4F5A9&5R.PT*:6UP;W)T(&IA=F$N:6\N
M24]%>&-E<'1I;VX[#0II;7!O<G0@:F%V82YI;RY);G!U=%-T<F5A;5)E861E
M<CL-"@T*:6UP;W)T(&]R9RYA<&%C:&4N;&]G-&HN3&]G9V5R.PT*#0H-"G!U
M8FQI8R!C;&%S<R!-86EN('L-"@T*"7!R:79A=&4@<W1A=&EC(&9I;F%L($QO
M9V=E<B!L;V=G97(@/2!,;V=G97(N9V5T3&]G9V5R*$UA:6XN8VQA<W,I.PT*
M"0T*"7!U8FQI8R!S=&%T:6,@=F]I9"!M86EN*%-T<FEN9UM=(&%R9W,I('L-
M"@D);&]G9V5R+FEN9F\H(E!R97-S("=E;G1E<B<@=&\@;&%U;F-H(&$@;F5W
M('1H<F5A9"(I.PT*"0D-"@D)0G5F9F5R961296%D97(@8G(@/2!N97<@0G5F
M9F5R961296%D97(H;F5W($EN<'5T4W1R96%M4F5A9&5R*%-Y<W1E;2YI;BDI
M.PT*"0EW:&EL92AT<G5E*2![#0H)"0ET<GD@>PT*"0D)"6)R+G)E861,:6YE
M*"D[#0H)"0E](&-A=&-H("A)3T5X8V5P=&EO;B!E*2![#0H)"0D)#0H)"0E]
M#0H)"0E4:')E860@=" ](&YE=R!4:')E861497-T*"D[#0H)"0EL;V=G97(N
M:6YF;R@B3&%U;F-H:6YG(&YE=R!T:')E860@(B K('0N9V5T3F%M92@I*3L-
>"@D)"70N<W1A<G0H*3L-"@D)?0T*"7T-"@T*?0T*
`
end



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message