From e9e6f09bda7d6b8549eb3af7a8ed739dcc591793 Mon Sep 17 00:00:00 2001 From: Georgios Gerontakis Date: Fri, 3 Jan 2020 16:51:16 +0200 Subject: [PATCH] Verion 1.0.0.0 of simple tracking and telemetry client Signed-off-by: Georgios Gerontakis --- README.md | 5 +- .../.vs/SimpleExample/v16/.suo | Bin 0 -> 47616 bytes .../v16/Server/sqlite3/storage.ide | Bin 0 -> 2314240 bytes .../v16/Server/sqlite3/storage.ide-shm | Bin 0 -> 32768 bytes .../v16/Server/sqlite3/storage.ide-wal | Bin 0 -> 4981112 bytes tracking and telemetry/App.config | 6 + tracking and telemetry/Program.cs | 22 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + tracking and telemetry/SimpleExample.csproj | 98 + tracking and telemetry/SimpleExample.sln | 28 + tracking and telemetry/bin/Debug/MAVLink.dll | Bin 0 -> 346112 bytes tracking and telemetry/bin/Debug/MAVLink.pdb | Bin 0 -> 28700 bytes .../bin/Debug/SimpleExample.exe | Bin 0 -> 15360 bytes .../bin/Debug/SimpleExample.exe.config | 6 + .../bin/Debug/SimpleExample.pdb | Bin 0 -> 3708 bytes tracking and telemetry/bin/Debug/log4net.dll | Bin 0 -> 276480 bytes tracking and telemetry/bin/Debug/log4net.xml | 32464 ++++++++++++++++ .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 1435 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7095 bytes ...mpleExample.Properties.Resources.resources | Bin 0 -> 180 bytes .../Debug/SimpleExample.csproj.CopyComplete | 0 .../SimpleExample.csproj.FileListAbsolute.txt | 14 + ...impleExample.csproj.GenerateResource.cache | Bin 0 -> 1020 bytes ...impleExample.csprojAssemblyReference.cache | Bin 0 -> 424 bytes .../obj/Debug/SimpleExample.exe | Bin 0 -> 15360 bytes .../obj/Debug/SimpleExample.pdb | Bin 0 -> 3708 bytes .../SimpleExample.simpleexample.resources | Bin 0 -> 180 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 3584 bytes tracking and telemetry/packages.config | 4 + .../packages/log4net.2.0.8/.signature.p7s | Bin 0 -> 9483 bytes .../log4net.2.0.8/lib/net20-full/log4net.dll | Bin 0 -> 278528 bytes .../log4net.2.0.8/lib/net20-full/log4net.xml | 31421 +++++++++++++++ .../lib/net35-client/log4net.dll | Bin 0 -> 282624 bytes .../lib/net35-client/log4net.xml | 32259 +++++++++++++++ .../log4net.2.0.8/lib/net35-full/log4net.dll | Bin 0 -> 286720 bytes .../log4net.2.0.8/lib/net35-full/log4net.xml | 32464 ++++++++++++++++ .../lib/net40-client/log4net.dll | Bin 0 -> 274944 bytes .../lib/net40-client/log4net.xml | 32259 +++++++++++++++ .../log4net.2.0.8/lib/net40-full/log4net.dll | Bin 0 -> 275968 bytes .../log4net.2.0.8/lib/net40-full/log4net.xml | 32464 ++++++++++++++++ .../log4net.2.0.8/lib/net45-full/log4net.dll | Bin 0 -> 276480 bytes .../log4net.2.0.8/lib/net45-full/log4net.xml | 32464 ++++++++++++++++ .../lib/netstandard1.3/log4net.dll | Bin 0 -> 221184 bytes .../log4net.2.0.8/log4net.2.0.8.nupkg | Bin 0 -> 1760575 bytes .../simpleexample.Designer.cs | 146 + tracking and telemetry/simpleexample.cs | 438 + tracking and telemetry/simpleexample.resx | 123 + tracking and telemetry/test.txt | 1 + 52 files changed, 226931 insertions(+), 4 deletions(-) create mode 100644 tracking and telemetry/.vs/SimpleExample/v16/.suo create mode 100644 tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide create mode 100644 tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide-shm create mode 100644 tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide-wal create mode 100644 tracking and telemetry/App.config create mode 100644 tracking and telemetry/Program.cs create mode 100644 tracking and telemetry/Properties/AssemblyInfo.cs create mode 100644 tracking and telemetry/Properties/Resources.Designer.cs create mode 100644 tracking and telemetry/Properties/Resources.resx create mode 100644 tracking and telemetry/Properties/Settings.Designer.cs create mode 100644 tracking and telemetry/Properties/Settings.settings create mode 100644 tracking and telemetry/SimpleExample.csproj create mode 100644 tracking and telemetry/SimpleExample.sln create mode 100644 tracking and telemetry/bin/Debug/MAVLink.dll create mode 100644 tracking and telemetry/bin/Debug/MAVLink.pdb create mode 100644 tracking and telemetry/bin/Debug/SimpleExample.exe create mode 100644 tracking and telemetry/bin/Debug/SimpleExample.exe.config create mode 100644 tracking and telemetry/bin/Debug/SimpleExample.pdb create mode 100644 tracking and telemetry/bin/Debug/log4net.dll create mode 100644 tracking and telemetry/bin/Debug/log4net.xml create mode 100644 tracking and telemetry/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 tracking and telemetry/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.Properties.Resources.resources create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.csproj.CopyComplete create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.csproj.FileListAbsolute.txt create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.csproj.GenerateResource.cache create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.csprojAssemblyReference.cache create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.exe create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.pdb create mode 100644 tracking and telemetry/obj/Debug/SimpleExample.simpleexample.resources create mode 100644 tracking and telemetry/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 tracking and telemetry/packages.config create mode 100644 tracking and telemetry/packages/log4net.2.0.8/.signature.p7s create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net20-full/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net20-full/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net35-client/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net35-client/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.xml create mode 100644 tracking and telemetry/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll create mode 100644 tracking and telemetry/packages/log4net.2.0.8/log4net.2.0.8.nupkg create mode 100644 tracking and telemetry/simpleexample.Designer.cs create mode 100644 tracking and telemetry/simpleexample.cs create mode 100644 tracking and telemetry/simpleexample.resx create mode 100644 tracking and telemetry/test.txt diff --git a/README.md b/README.md index 7fac3bf..1e0194d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1 @@ -# Talos_Drones_Tracking_and_Telemetry -123 -# Our official repository for the project on GitHub: [https://github.com/GeorgiosGerontakis/Talos_Drones_Tracking_and_Telemetry](https://github.com/GeorgiosGerontakis/Talos_Drones_Tracking_and_Telemetry) - +# Talos_Drones_Tracking_and_Telemetry \ No newline at end of file diff --git a/tracking and telemetry/.vs/SimpleExample/v16/.suo b/tracking and telemetry/.vs/SimpleExample/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..d9ac07a5945aa0e1751f9d9df8f3f1c3a04a84ad GIT binary patch literal 47616 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide b/tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide new file mode 100644 index 0000000000000000000000000000000000000000..0779064ce33dfee7b202296786bfbb6bf38a6b4c GIT binary patch literal 2314240 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�qArT(68V-XZTaXvxTWY<$qrIAYsY_W4}L4 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≫6~E53E-5{8 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�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�NXC`Pz#FVTKW4Ixoc^FCte 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%0DJ(n!e3DpS`;{`Qy{)GS575-ER{fW*;Of8a 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%0DPnqkky9#A)p>)i^v5rE!v2I81 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�y2qWW7xYN-}3s=wt+ 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 CoP_KE literal 0 HcmV?d00001 diff --git a/tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide-shm b/tracking and telemetry/.vs/SimpleExample/v16/Server/sqlite3/storage.ide-shm new file mode 100644 index 0000000000000000000000000000000000000000..d9169d86ad37d0d282f42a03ad417a4811b0248c GIT binary patch literal 32768 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 z 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

  • s6 z!>ZRF0tHa(7C~4mQmuQqYfgsVSc=|obel{IVio?`%+T>h(aH7_iEA)U+xcQ{hK^@2 zpmlW0ByKBUKry%dA%qdF$t^BM=$h^>&d@uB3cGD8RYj#xYj}BChK?18B_(NDI<7oJ zyUT45BC;c**iXAQgk!+H%m+c|Z@=!38QS7S=cxW^y~=x*&~f$|Fy<{LA|=6#R__ z9AjZe3A>K7oj??SF_EqVGxTP$M4XQ~4^_0D{sxlvfCaM9L`2+b4DiWPaxgDk$V)kZ z(IUqj$_g(Rz0?Z$oWmKoNM$YC46H?KDl>FIqn*N~1cP-gs`_W>AaobSpwEjDqxV(^ zaCb0(OOl#x#J~)e?yA_*96@N7cLrtXgjbvzTUT>z7Bt^FjL`V{AsKoj-BIDw9ZP7Q znL{&l4pO1QS_dMm_TLW6&~c>BO0->-q;m`={HP3lYqNvmN^?q~S-v`&wHc@CwyhJX zlWAH!*2`wFOyIGrl;ny&=wqGCabv?_KD_VuGaN3mNINUat_}NecT89F>^e5NbA)4y ztw|jN?5NMsK>^{kror4E%+S%VGV6rLnkcqLnY?}B3>_gZRak`kQlTf0Vyj9grFAvZ z_&E}je^`{6HL+^hiK@zhVbDY4Og^2$h`4cTT^?)V)mA4qX{&wgXeJi1Kh_z0H z#95&3fV;-9o-bEu2u=si8pmuwH>DB9lycmpOPM`B!_`fABKTv_jB+rd!^E{h&C?dw zt~**RE(2S8>v$~L>OPiWhL6tKF#q@tDSKjuK546f<*daWJ-LiZPc3;4O+THPr*g}`Nr)v{o_)%* zA>Fi>&t}63=ahDU1RG~ura~mYF&O6Yl!wmOg&G7`o23+Zd@+L;sYqr58^%bYl2!TV zC2X)J;i?#J(SKj*P=p#6b%&UCHwJBs?)g!MU;(7C$ry^q=At|Z%X&6C+#ar@S1=<8S|HeYQ#C^8_O z6+7?&rbrQ`N1~qNK&1E~=2{lxaf@huLTnVpYcY;U#18;c{y~8{)K4z&;YZjA%V%lO zNSn&Y$q>hGg^w~_<=GH1tJpIaoY8zk9w@B>Tb}ZSifn+`QX=w>Y4b*gjdO3{R?)^; z0Ur)K2e3jV4zC`_d~MrJb;v7vjJ3PO21fkIb;OMv;YCu(Yk{OqsuF1<9U>baXCf^n zi6I>qNqx4G)&i2Rs%NE>i@RJn%^jJnCY#mVD%CXL3DyCHvbtDi!*ZQ>0b|2f14hla zVLIGPu#QhMn4Q@z9zfBDsFwmk-BMWVZGz{A9uecL#$}YL(^NaBK$V3;* zFmj*)S%bp1B9Q!?NS@I3I0L96rLYPoN`%_|;-Z)J%8@v%bONI0 zXR=P6o@SmwnG=KHoVVHqppCr`Sjw^~kkcxqQth5$ond1{*dNx}e*H$&#ldTCmo>SC zb9S~6f-{C34)NGf9a1=K2gd~#o9o7B*%rCf=7K)cKrecZtwUuh3?L0uA~vScev(Pd z*BwAoLp!A+*^#~VK9XotDlBS#BU`rddA2v~kcv}#MHlckOY8-1!e%s2#JJM z&Gjv~I;#=UE)5rMjN!hgW;pXj7K=$&GhAB|c8{?{HnW;_Oj8C}L>L4c2x`p{FR?90 zI(;ghCdO3xGSiw$<5U+G;ArqEc@?lJDW8OGtQT=T>qRlvQ$&}t%w4jthQ898B)M~S z0cxYSaI{he$*snEG8#uW;--@3+3+e;hSE9l_<|xqA{Z9?SSsd?*O<;#zY>c`IZ0yZ z`UdM)k**;9hlI6klEpn6C^8@g;xdBp^MZk~Vy?DTb}Wh8+#~gL{F`i^m(Y@rT-U|` zt}wX(vylVe;%fv)B9skZiGZHBxz*!9dBjS%Ex=K=^LVATtak4(8*K>7*@QkI5$iyv zM7Lrj$HQLW;)6)BKvEh5*8P{&DUW$Mq{N$mpw%Et)Ko743~y#+PQlDPd~1fjY2dL{ zm62&vZv~Z7W!#o}h}ibM3`%t|F>lqnIT^oqQIj6(5cjODYb-`@)rYJiY1}i@BkR`t zeby3F=F<3a)b9e>Mmz)roJ;w~JP7|L%Fqv(Lc6t8oCsjxH9wtUb0OHe*#eF1cxYru zqy`y%|Eb z{g^G5`Pu}F`O<~z?7Sdj%PKCu@ z(Oeq&1+!`%xdUcii-X7PD68-yIB5Ljt4O{TKJS=mgAUowIy76HN6CXhqF)O-WvOM` z8x0qjZT^fMjP4P_VK<379aO49p&eYM(+z^X2^jgmcnY8yIoC2%j}S+F$wpPNTs6h+ zDjbyQ(X7O^0Mf?D23E%-;@vZtQU+}Q6$56ALm_dSL|6SH(5c}#Z?w*No9mJAhRrNI zWFJT8f6cnPP@!@C2UoS3&>H}whUP0+9j?kVP@ivDmy{?FF7`)|!5~ryNh|jOsrNVv zsTXzv4*Qlh)@`Nh5pf-el&F}4Or40h7{ZDv-^q5R_PsdAa8k2p3V?Kk?y)=)>)lZ4 zZqQV*f9!t%?g&Tpv90hhJ;@;rAeoAdlrPfz9R&f5*m`NA|NzQ{Um# zT$z3z!~+QEHxe-Mdv>Cq+YraqdmPG!vCb0Y7Y@l07mut&PXhe*15=L&JARQPO4M_H z)KxTdG8ttLC^W)~l`Ww$t&|%0iS?Z)F;uNt30LtC90M2See`SCosiQTK z>cOFz%sM$Z&isRUdSF4IwJy`9edMH74Pdk*_Bi;eINwSqt$#np_nVV8Ub_2$h$()J#Y65u^Fy^T-9Xg13pJ$x^#xFO;;ah!cOXWHad zAk&`02;t%p-k{Rt?0t;f!79bMRwwOg<6!8ZeB(}O8DiGH&Sms)I-lv}n&V|7euh-K z*kJp+DJ#8FRBS)bhaY}DDJK5b$7GWl2X1gRwt>#XTLp6T~IOrtWEizPGMo*`v(+V)B z%Er&k%+yQ1k?7yAUq2j+OwF{(uY#<{OJd+aC;6Z(2YFBuc_}AniC03k_B{<=vi;d1e;jwN;Fr$GwCM+UGWF7Hdo)Ur z^u|;r<^xC`jXN;_<|5gl;e6&CS^WRNMIMzqF+>=dIhi(bfx(C{6@whqk3eM$cmFB} zbzHWCI!M$?N^h}s%rNRz;tyGJy@3*n1Jq+wz5k1irqXzR`85m*1eK> zfUw7BWZLw7Y3NWS(a*_C=I`&|&&*GybN)psbh#doe4`+lzY2}h<)4s3uXL3EMjATj zuPRKI-_OB+HK)7B`Xfj!q{{69k-8}xF~WqCd2A6EF6fnx%5O?T=gRL@oXqcR{L(aZ z&YxeB%-`Qp{$*+CoWHa*nSX$T|Ee@}&fl&qnO}@dt-tFyz0jJ4w5d|V`#XSWBbY-6 zXZqoDC!e`Oj_dQvxmlxQv=x~){ZG(oN0DcVu(sr?-1;_pMH9Ob77&!XGl@2@mZfb2 zmZX)|W0WNNCmNCYg7+JOIB#7U}my}L#uI*21^Sei`r)DEo*^94oH=^6e#k2 z^KDeJsJ#GDz{+-z*;ZdQc~rYh?I0JT35Y{hBI6LjE5yd+M=-Rntoh9wq!PXdH+57Y zj1cDr#)i#k&tOIH16siS3>@tx6s}6uM$4PuAq}p7Dz3bv1J}Q$a<55;OH*#APHE(& zDR*@`+@RF@_3F&zm9h7ZkS#1CP1d(J#KG3-K$7R1C9e8O$5-tCd0fCZwIJil1+~lZ zdxN|gnntF%R(9QtE_#_V3Tp$AhGrxz#T)US7eWAQGi_K=SJrg~azSGvZ3wtr7)P;~K3QjnI+X19aX%euG zm%Zr#29!<5v_!B@$h9JsRQSuiS<@>-(~(YJBa!J^wV@AlAkx8|HNLwqgBR&1uo5Ei zgSKaR2eRSJQSv}UA510jn~%wUp3k|98OAeV_AnVqX1KFLBw5B)J9w>23m~zXEJSu$zY&oWQZYxwf!CE)zhuC=<}O}OR2kgO)ag=>2TBi0kr64cM=fy|`xprl|_&9_X)-agGPO_Y| z+##&RIo?L>1#wA`F<%XU3Ido_h!#`H{v+5HCs$l{_gkxt@)_R+AXiNm!+Ou(Wyo(y z313ljn4e13_=Ykk!BAQ1pJv+Rt2x<3mxxP5W8s7l;#(jnj+BFF1#$<(84LlAK2kTv zaC?1X%SOa2L8L8PfzV|281xIWv%L)UB~a8e4pcQm9X*Vp3|}N35Cr>DwqImzqYMB*@!4DwX3eZ$Y!7!{x6Bv01$W&@B(%SIwig>4oL53W~ zyUe;bz{r<_OcHRqZKsnsmAnHWa>Q~+rR%7pj^@RTsuzieteC4ored;3r8HzG=(MNu zj1ucA<34&g3-7o`IaRbAMCxR7R2tRq0D=Y)zEjZ%2irNWPxG?v-!@d0QUV#;+%3oS zPGFTZ^9%fYccx7lUd?JEo~wpiDUziLa0LL4F+h~B7^}IH3mxp!nlr!Ql#4j!YfkwD z6g6th&p74K8YWH5eX7AZppY6pHIaaLFNUaZgQ~-Cc%@T#7ewvlXH+*XyEQW6sURxB z=2yHjFN31gVTg!IlDfLq@WplR#A5a%K_bK~PlfrGANGgcy&Qb3_>p3eCB{Ipt1JsE0+L z5RWU&%K45{VxZ9Y%g4HhS07A(E%x@86mMmb5W*8 z>i76YT?@l)-N*A}*~G^|R7wI7cOj5Mrigi?7%^AA?qNSPK#=i(P(O>IN|Xl~vnd)+ z6i94X|QdP|HMoC4g?i_0oC`0L zcGc<0peQzCBD0(Xz6dx){0~WmW2r=-u%Qv@?D(Qq05|-Qa-J+?Q*);45LITm5~5xm z5SKDoiFb`=CrsIR83GBWTuo<=VS3DJY{Z_LYTI$Fo(4u%yr!Db7IRu=Efxu4+X+&p zs$W*)=mCs&$~Y!654PCnYe?2<(RjUp8`Ay4R|R>UZwG+7HU}3qy<-DG-fu%EFo4I4 zs4lPi)1cB~V|Xz%yhwbe>K}g$n?l)gxxk~VnqH7#8q2}0RyeXjKDJf^psObauVYu_ znyATUZWdcj6x8e{hxnBMDqC&jT6d?AVGobFTb2zeo}_1_VG1>g4>iMCBg8@=Xn z!U*+1x{pH$~;MKKN80gLXfG zg}VymJ?WZwO05q(k(E{`QR&8AkCWI&+JeObK|H(T)Y7U{n6l+ntZL;mQlu$Ze+Ij> zWf+VQ4V0XjElR^77{SitFvCi!X5^h9E5`!6Rk>3m-qS-b_V8`6Ca3we4ljKrHLRMkzOk~u_b zAHIIdsGa6AY8!RHAmZWj18xq>)@NR(PG-(RgoouWr{y$jq@mjkJ~9p-Z?Lf*#=IuW zrdG~pHE>t^W1M(Bh%~%2MO=mWN=|0WP!0}T0zPT_2yi(7)CEQL_-q{vIWCLHL?Cib zx}M^&YS>xm7*Z0CIZ`&~7I08=+SCMU@%1(F#wo5!Bbsl0ix*HEJ?vDbv=RjDMZPb- z2at-~1|-Fj%tU{L2XOBdgNkG=SimewjzH9n5kV9JxE8V|XA1zLv5bBx=wybov9%UK z8b)t>nx>mwP#8&mgi#Ff9Zn>$%jbU?rs;Gxo(s?;)&s}l?P-Sk7%1`v4eRM8Ms7NT zjrtsY(U5Ag1pw++lfEXwL_B^bQ&YC>I5B$vvveyB>9dMs8t1TB0}R!&%sNq%yCVCU zEQI~#H{q54N)pVma*#yMW>J59B@E|5bk;pK%Lcu14qJ!vh2xwCm zbF7N&8JY$+`WjxaobG8*@8IR(j1Z3teDvj^@!Q{>))l{pS*7yrX_?%<=U1_rmMhzr z4EgRl?(*x#CF3?+&uXmVZ^@vwH}LXgvyvg*Z(`+{VmzWu__1mPpA0&=+lF;j(q)tY zNON2=m}knK?!B5#7q@s^zy*p;ycI+>pN%|r&yit9+{}h|HbjSNsYJUD=s`yZ#913DwOxuS3k50<-K*rPpv|EZS?JuoDd2b!{YpYP+TkrnX zDwOxu34gQ-<-O(lvsEbXt*ifP4JvNZQEwgccdJm|ThH!o70P>S^!`?%ytjVD=B?$C zHIVn#qRdvIytg{ITZQu8TJLEU%6qFeyHzOft&ekBh4S8-i{p%zH6ZRbQg7wtw+iLG zbz?!RP~KYuidu#8-g>3DRVeSRV@q3w^4|KrtW_xQt&7{V3gx}kqiw5D-dh{mwF>3E z73$C$bTIF&9UWVR^4>bFbE{C^Tg6>lh4S9Iy<4kL-dn?Zvns8?w&ICGQ z9C$||(1@E`BEUoN4gIooj)wz2YILP~15Crcl??9Kmf8n(B={>J>HNnr4lG^q{u*1= zQh!-k-d}J11D5w!P5;*A@;UbSKVbPJ>oH#DIuA+zYGE zzv?ni8ItAdrBY!WLoCn`XLURL2sXqVg8;Y$@7Q;Mq(P8^Yq!Q_crPg`~|!PRSUaMdv4G1E-t|it0Qw$SGxBR=W|LvIG=$D3mjU zRp3t$D3hfKgHfc4(Gi)h=q1&xe+%*4E|L$^z`FXf^d+4(_=*%RE@E`sX*77$Erxps z)cSXU*6)^iLv`{y!`4fFs+$Nrw-wl0eff6WN*tsS7y ziyQKcUYx*V7Ex`c)&s9hLN1-+bI6~7s60zU9^>Pbo&%Nz^r)2C2z=b@BXKG-8zYLQ zmRvb7rPO%$)<<~T?gf@KAZIzlQbquYj*n!WB|c@!t73oU4Ck*hv4xm^2a|pUC5g%Y z^Xa@DHhxuDx1>v6x|fV z5J&35@(y*|6ic9Q#?%E&Mq__U}ug7t{_*8)JP|FFY)#hXeg9&pxFyz@5 zMZ>i*@zO{_JvBnOsf+bYHL|g+!vtenNc7?*T2TglvCrCj(Tu$mAR3Aue?udDIz14@ z`}Vl;Z9A}LOg44u1zOEUUOZ%d15kc7C+4;>dw`)fcwi)IFg1y~=t3r;K)&D*Zxpv9 zg#$;ZXP0W|$2`BC$sciI0KX%G0jCt8|J$|HZ6rl~;#{+3j zmioLKI5LWc^kd`fT)m@<4fQ{F%+LQ=@ z$PJH1kvbbfdL=`SUB!&8L?(@NlKIVb4B11-^o8Y{D1-G$z;)%m-4q;|Wbh>6T=gXeVU&D-yTXKM66PJLf$E=Vi@{)+` zxt)zEPcrp9P}MqP7=pP!CLJ+n-jT%Ypq>q?lX=hp#=Jk7*+D&HEoX*V4LW4+0a?3D zg6!Zv`A$ZbM*x=6#D~ls8;1V@s7{y7d6+P?YHLj^Ci85m?G<Z>0!~>93h^xD6ysjTa~h{C0fl%@=aj5Ig?ZV z=9IhOe^5)O-luttT%jslEx{w;WQeu^pu6L}3Hu?i6d#mf`XsDn^WY8;%iIktOy4pKtQE18Joc|x;5HD;`hUj) zvqmi8$5|;dc$u~>0~7EJi0OAQQH-Hwra=k#mc+FB3C7g23UHWAEF+%$r^-de2WjOu z8i?s{Fj3{CF;y*66OW+ZZxs7~9v2vX@)pmN!Hj}~ZL5Z^IdFJsM@N5F&E&n56yAwSdv1ba^-$^NmbcH}&-vPpF48n>R@n9sM%1b9wTV z-)05C#(d5(1@UOLaQnr_%Y>mO)Rb4)&Zg8l+fInrK78?rxWLGuWv{aF(ZPn|Mz?HR zdY1RWLhq?(ZC(GGE6(%zlGi*2F-v08iT5?B zVVi&?%ZlA;Bc6`X596odG}p<7jed)jfVd4_^bs#Et#jM-@ozKDn)Wx8#rL=fal$)n zn&nhuw=+^kXb9kbSI;NIBR?U+*zW_CoJYBQ;Mx-I%=oZHcOJra|1WQ%Jd0#a6eB!| z(|lMqF=s0)As5a|#2Xc{H5ceMWIZ6-i^2SaMIwy-!|7ALe;FqPi;W)SumqWOeu_6A6!5V>46 zEPZNe;&gPtKo{^f%cu|8G;5JXd@h1mzUM3=zMN8LQA%ZhUd+;uSbVu<9`VTvDyPrK z|AwbZd~$<$Uif!BB3Y4mCV%p8%IPmY2|_#>pE4fn7}M%x>NoNFX`<56pqs!%i>>%F zL5kuOQzE6GhJTjj>ZuME|C!g(Vc&3GnUaz`EF9%Jdv3)xmXadf&tzu#QfpFEkNlju zpZ{E>vlF+0xtD6|zhHLs=EYz9KQTMIb;x$coOYN>O*yptDR}6(MLyP(Ae*ahI0ym$qO3iyg+vT9?^Vr**uBij#x4nu?fYVJFAn zoJwjbuY*Ec!!nWHi!1{E#a)KIWWSbTh}R`VstC4qRHdQV@zDW~?szNULa48RqIX~j zB|kpTWZjmbQ90i;!n91cuCYv3S3U0teS5Op6dw>-W6r1mXEA?~BW^PoD4EP7vj$us z+0?t;Zrbb^9=ozcEiyFK9OGtu{{=f4~I9i!pFtBPVjNxZZ28P(KpUTVZoKu~N;cD?=OS*I$; z7qG6+!Q&Ei<}YjxXEFCnMScMWQluO2_d*%_-8S*KLN^O!1Ov4Q0}ydn5>c2BB2Fvf zoS{Gi(t(M%ixXwESyiky9>UkZ*_%BRirth9EQf}0<7j9kvzZ>x6!dFGiEfh|k{*vu zxegT7yGAZdaAQ0ug6VjIR6!0cb+gC-p4AM80^)H(0^9}w&2+hGSJe=c5b^9Wu=WTg z5JTHCx89dK800H#R%U`u=edEyO@uA{waAIU2@6kaqpsv4%skorQRRB5h@)csY*Vt@ zxG62gJQaaXqTBo{X@l+910rgd=Z^|nyF(l25{mQs=y+%#g$BB`+Aj&7Yl zV&E$RBk@rM&}{NjkjY#WM-l77gR6K-&3Xck0dqU)$!FxtmyanJO42R?NTrt<#S$cr z#6+47UXx?e$~!Y@C1M<4bxVu91xR&Kz>ufU@}Wf$HP*wbqKj^%nd?b9dDaYOh1AIg zz_qB_2E>;yLW81Tq$44CO4y#*4bOJzF5$GbC$m4tJQDOGS z=qJX{Kp~TwEy|YRQKC=i#ptEtnwh?j;8@4s0gxONd>h+(4KOh(RL>&Vsr+US*~0q{ zU<1uWo__;!^aALS9v&Of*qiB~L<;gF6A&rW&PC;W;Anhh<3v!NXXvkUq;Q(OWeuA9 zu!dsIlOHhe?XjtMgQ{0V%uW#qC+c1Y6^~GgYj9_WOpO=9i>f+kCDJOn>7P$z7*hPV!5 z%ZgD42S8jmBMHqQla0xfszNWw5l5K2fKe$xhAH+1K75>>t0n7TR*yUx_*UPICn;lr zAt^XPS9OImOPB{aCJWhujFx|hUMcWWwskg4oD)E$PPL@t)9L=2{!GGpV5kNq^rjU) z`E0*GPtwdoS?3kuOhbM6v|A`gu1533Vs1F$`j0$qgEWL=r01zJB)Qw zzC2R1vY7CUC*?P2K698H<{yBIEPA2Eg$z>bQ)j@~u&TpZ=>--Hgt`PM+9BA& z)VI%ETG-cIm<_|V4mdM)aArtabw5_7-JmEQ;BCeengqHLAgaHK2gPwaOP=)+Vh<2B zzU7*Xcm70nw!J1ewYad7t;u=T*`1X;?A!sTkzx9!MmJZn5mKQy0M?JWO9lP zFg(=Azd}d&hC%;?_g2GCA$*^~49~PCk9}i)0rXC!+ zI=)Uv408X^;sRY>Sa#rrg9cUM_gJT)Om&^K>afP8e7}wajy%$>4^UcWaw_GlVT`F< zmn8OYu);C%eIzR3$p7fwhS5fYz2fEEgq@m0XwOk@eXFt9y8S2LM?~5qjJrDIn*x|} zO^j@K^U{H38#8g;O@2H9XM|uho8)lpb~IZ&b9C}Xlg9>h8qOSLk9-{01(HqO4JsMp zcC2#Zb1AVHJXnXTG2F{Kq+>cbJXD`J)@R!gU2%s{bDV5IcC}ldjI>QFvKbdw#(8Y~ zZs2Kpv`>o<1jXBo#POid?P{;~@fD1N#c~*YLJb?i71jp65$T^WnPK}KXT20W!NKj* zg5{ku_WflU5l9wjPL#@M_Oq&XNH4CwCX6WCM32q#8CWO2#?m!?DdNJ1 z{S8ejs!yF;C*pKzna?t4#P$K$=zDOz(zD^sR!nJ3pg7zWxL(A3I(DXX%y(dVW?4^M z5JqlC8VQF6+^z#v_xDLJLDX10shN&{8~FPuei?>9P&a7Zj83}Ybnysn7-Sl`BMgzu zW}YDXe8@;012JK2@v}|Y2nu<7CEh3|miW3M5?ACu88Q-N9#BaGwu@HhNu`L7g^hCF=g=)lA3@|T(@S>Ee(35lh>n2$chkm?(9!_5w%U2*%TQ)*DZ$y@FV*=hy<=6 znZBi9P(xU%O`LL4^d>#CIa?~PO(RpD2vyAX*pw$hp-=^0AlH;LMrj^-hX~G_>dGM{)m&a6IC@y^qM$ZPvm3nPX2YA?yeEl z(ZYu`vG$vh*hu(b@*@~j{KG(yi)bMNqs0!05QCc;!VnIa*o+eSTaal^;L|cNg+x1M zwC-}FizvPt4-<&1LY8}uYj?P0U_Jamz5FGZ$U3?4zC6C4EY8~G_-kE;d9Kv>3WT#M zk1I>==g#%mG-E8QQklKUw@)9OJ$*col&F<2w|0qY+&DzkQRi!=5nwKsl{jh~8z}im zL<)ozI}kP~Ydiy~*BxpDHF4`B287!J9Bq{H?JLCL7#^i@X<@&6bqbHS?h*41D<{Y>zei)WGBxib>%ML z$#u-OzlQ8Gx-0w8q6G7L*_*3QWaBMcOd!OsTp-%?ZYME%i9?#h?>-kewG~mo2HD&Bj4FQDN2PHw40BFx>93 z!QMIA2{Vc`*uEJ?xM6eIpsCO}3@$i=L3|@bJWfOKC+D-px=9WGly=!Yb5;G4p2L&u0+PS-ZYJQt%!TuG7Zq?LUDta-m|O6eJF=#(Ic700DsehcS*kBz(+ zNHwxeaXLg4?Ei%oQuzW)NB!^RRYL}gxIo->#F={R${RYw)%zS46T(CMcnaU^ypg_y zBRrO6)z>5$hxxE<%V4xrZIR7G;YdF0u_-SzijmLl9Ruw?k4+Hi4dXin;(LYl_BBdG z$dGrezdurUKJ$ii;dVN_;q=Vr23ggg!K#)w;Yj0Wn{vw{W($h#3pi};Bw*cQHd?Y{ zfd)UWJ~BbQmgpjkBJs^N5!w~Y0v_9ExCIxm!JH>P%iavfUwRN!R?da2ud>Azeg2{E zNua967zJ3XN8-JxhD1%Yp~@xiNLwD7#bs`i3it**diCTy@PRjZY}ELr4AqXplh$=x zS&0U3R1f=CFJeKDoY8h5fJHc3l3+e3D>ZQ$n+!Q)6hEjo;C%;RY$_mpF_U06Q5Cd^ z7lF`zbyJ!`j=IEwNK?wA4um&NDMK#hGQ4R@dCZAOQ_7K-aT&N!FBAGP#7G_g<%nF7 zR%V4>7{q%yi@+BNh2cSUI77~06?8y%hPhAj9$UigYBCy7J}jD`v8~{XL8l3 z)nfzK0Z4JnQkn|spfj%40R^K}oqeR0+G{0)cH|FMSr4+M6aN8tD95@z3kr$QeA-f$ zU&GwHwiEhY!lPgvHeIZztbv)?;mMgOoSz*L8@E$GK?8_;uL7^Qb`ld04tWCrRg4Tz7NkaR3 zwa(2xT*6{dXmu`=-~FuxySzhg=R%N_%yrB{9LS~20Y%l_D6*d{)#(Bx;Y;9XgywSz zvHO?_@YwM);@bx**;PIMEptcaGPqt#H;^+@*G9`-KLzVY{SO<28KxsO%TQLYZsW)TbY2z2Z&`a1a+gq6e+vPEX3n~ADaM9*h5!Ynsj5N%6;k5k%k z%F<`GI?M`A8Ty>2SPAh`QFKH~L;oTGRVs>9l_MeE$z*nx3aNUYDWse_I)O7lT#Q1X zsm2AQ4gMA2auI{UAEQk5d3x+KFEE2prn)~p_L3JFwv8C=md?|oCv0YcF8K(GY?<89 za6|AoaLN&q+Hf4#Ie5&TQW?`%vJt|2DJq;Vv{bgo_1g0t#^GPzMe=6qMSCZrm zNX5ioO~MRJ#gx33gc+2Ic|933I2E(>^&~k%QZfEFk}yZ4Vlv)zU@D;@HI7J!8T7ce>kA0M(>7@LA!}$hAqG_rzxo zk%b?=l@(qT@goZccMwFPjC6R17&dMXaLSpHAL+DQZ1q%Kf}f9v-_sLQ9J4tezn9hL zeCCm|CL`Wwlgxnso@G7Kun`p>XlrVCaQqB!M^m?gN^VnEB%O+z7o!t0-BP^L zRx>7qEu}9h!ZYSWc05&p3vkF$N?19EE~5`T1-Yg82WjST*@AZ=OLe!sl zHuA8Kv`I3`aY3Zo8^M>4BjG6S9{7DDMZ*YuF~G{&nw{a65#ft%~eg5lD<7T2AzeFIbOT^a!V) z!0A1mwGb21S6e4C)aAZ35ebFIg?K1!91shHF8my-Rj*U^4yh6#Bp_UW3N37{3`DG%ztRsRp+J zL3+v-h(Uw7g#U2~xxv8$6U~FGoQ-Jwn$7jAhRYBa(_66qVz@cQm{a9=JL+4e$LyfLHkJ^2 zo@&_i<*9Trl8F9QDt!>A58cV+=S1Z8TPT18Tnd0zp#^Z%V0#*XqY6X5OO@cL!zCQ> zFLca~F!zG>|5wN1kU2~0`1J3Y4obX@jX}IQo2VXx)l7ba2QVA?CXmYWH@Y}S1G_gO zzr;i1!21Ks`$}RGW(($scv(hR>(b46vg(g<*=bB7KF*F~X{3tl54F!TY~Ef!GNX8a zvp7*NalN(Q*nl4`=u$g|VS3S@}=zu-{$ z0v*badhPWd^XKFDX594(iL7E$^7NnGu7j2Q4yp2ShYq)hgnLFTpMymusT%E&EF3}F zNdg&fcvY`j96X3nuTBgP>|%$;omzm~?{?9R-40%UCC=l+M+d6$0IQ;Ue$~#diLX9uN;4?Rr!zm|l)FGtw$iLZiU~>E z4+bxoQ=OyM#lQGkk;ri`2-KXXv!)WX~^`u!7 z=O5B-`b_md_7DH!uX)pE%>@_#>p*>JqNTc+ON>bfjvw&5u8C1JW8(3N=vHJMq-S?736s&0~mL|6=QXjzG+xGGjIajQO9|o{@X}!nv~& zlP8{(Sim5A0MQOVK^8K|wST9DoW>wS_cBP{#L1JVoRm`1C%}-0#xT67bN8jk@Ujlr z&oHLY->j+g9Bq0X2=apn!ONM4ZD=Zjm(o6iA=>LMou9BuOdelP0UMPxo%xc^9oK`&ne3}rOBgt zjDq<0eq!Fjc^ErP@^+wTqg-sGCeNBNd)CY;Gv_nlX@-YlzD9{^%8V&9rq7%@ zi%q~z*&Z@A<~4><(f4FqL-aSM;(^-yq=+(C8I!Qt@-sn(G3o!VcYs1DM@b_YmOQg1EtO`yO8bW(WI=$wflgou0p~k|tq52*$SEWoiYVA_ zaR%WqdI3h1AR((5SxU>w$V#>3m{V=J=~)?tb}NzKFAzfbGTvq^!m!DPM#$Qt)tP_g z|6u76c}g18H7o^;QJs=915ojHmXUpfJAC*Tr?5HGD#{8gi=U8&n%vm&BwW|2a<{`+Mn~{}kHK!I9 zU<*s)Yh2Y=ZoAgym}jwDpyCNRFz|~B`!6gi(T@VVEt_b^KA;yC^#jH_8`@EvR^%54 z6k~2(qE@%C6le<{(1_PUfo);%peiKQlv&_~ERgGf80J#NLKevATBMLo`Ot#%W?taa zY7={;jJDZw%urf{L24aR&MGGWTMf;;V3AkXR~jt8bX#g+zB${LI+T#isz=Jv2ka1- za1lPHzEm}J15Nzu1~Qnsi6Ucyr6`yv%^X`{Zh_mn-nAhq&5s$Y)8J{PRcsUK5`nsd zo63C39;@FD1`n3m-o{QPBar@0NXhtVoV7|QNa{3|`G-MXfhENZN(#-5p!gIhL}TH{ zDe|%kQZosO8J1OuE|$VcMp;G>g2zChKvMC;Di~HvWYwu&>~8KWy@;P;PeXQL`8Q|5 z21`F?Zp}?aSwd2YY<}tFD>l5VM;WVU7+rl-7e?i2~f1tK^O z2z3&OK<)w}1mc~Q2IC=tUFu5G;hT!~jG*hneB}g|=;LUjOt(U{cM)iExa?u5XBaE( zV)xv1SllpF&+*Rh49X7e+&Kmh3eY#wDZ2uB9S|eC>M0s#MmLgKQEjx?U8+q|cT#Q6 zGgi4lAvZU!oi#VL#*wFbfu+FMeG=iw{8Q{!3ka|vD+l^07Z^O4trvTcb|yfl(Thb8 zb?WKsA(ov5>O@)w2&*R1QbIC1-X#*8ZUK$xqy!ntY{|4!1M*6Y?Cq#m7;E8FN&eP@ z5G=2*bBsd0#!|q6@)3!EnQS@M3`-O!=`{uq3Z;I$G^7R&!&`x$cZ0*=R^YRGk?;Z9 zaD9X|D)9W49-gvQ*t`W<6Y|5c$kuHjfNTzTQYU^xZv8om0xHcm*Ekux8y z3-CPy5KH4=AK86kzIy8~(3HN!WO(z;3+w@4V*1c$Bou@P@YLBZ=ttQ4jB*6q_NU-z zNAMg4eMh2Ghwy!607;PVC?_;-AVo(zq5gv;s-6H-B2v2)5F;zftHJzgc86wCk3fCQ>-{joo+| zlh9q#Wx+GwTw7K?7-iy~xYk{+(FiM2CY8m+yd z|LY!=;<_bbg54-krzlmEDFu4(i%5hlAls4;T_Sr{MurtM#AJd8W#2HH*h7C#WJ%Tf zp@POMhcq97oW^cVwGFr0!8{A9t3YM+c9|ciO3k)fXk_o@O3SKVgz6*$544eF1d#kd zfe50?d6WnSHTh<1t|cWK)kP4M8b*i$Ig#ButT4;&K;>sAi4EdZx@;WCSiWo%nP@mi zWPw9L_PkdTBDJK6m2+pq-87CG8@03v{eK4t6Q-s?a`jRuZ2}4`sq{k9rugcf8iCdr zPE^^%Q8P4-0{;SVF^M7Ee`%HiON%xnFR3F)ud2L>m38UZ4H)Fc#b@wQEAq_DB3zW3 zu=vyj59VR_NK#$Bv#l^QAh7tC-XZCRcYP za>hVvRi4%}BnYOpstF!UtN&OTrCP~Ekkx>QR-rOQEaPMt=8()btw=I|2Qrb&YQ-lL z1F6+{GHZ^PK`@!sP4Hkcdry#2@?;9+XFwd1DUf$3$}o<}Y)_RTyhz5WK2v-$F_2n= zCo`J_!DQAj!GpBn z4TtV|0~0)$_cv$y%2ioj!@=|m=($-A5ZE07U7=85T2^|xHsQy;zJhA{Y+{a0u=%TH zQfMOK(rpfrtFIj=6$yF~P_Y2hq;;`r%7?y4LhCq9{v$Uy&BLs@B)oULh4L=*lGI-2 z9iKw^E_B3FDbFhNNH|Tmar_T*7Jh-pk7||}+u%z$3dpNAOaj|2+1aC9M&e#C6TNS3 z0)MhG0uZxv4)Zgv{Wto?Z9O5;s%=f^OKwIZ#SU{@6FjISmFCNA@eZ>I!CVVu_EMQ^CQ^^nqn7;q92?B1Iy)VkEhDM#Y+{X{ zYQBuog!b2shsaG-Y8Mku8m5qlm?^c;4kLHape`nOFuUtlkSZD&21$k`6MXGKUqThP zQVNARQ1v5JzZFZ>pHMAbMR+L%nRZ)2K{m7nB1!F5OO0d!P%EwWbSoqq8x%ow0*Hi< zM-0%=Gef&IGv6Wuv~DIB|D|KQU>E>512dhm8pVaWk+S^(G$G0a4~lc_JF?|ff22s6 zHB!UXpD6M+AV!^G3RK^$g2FV&t6=)vS}71d%ofNQK#ZW=Y6xV=I*G_h1ekiY!kngy zI{psSVkvS@6YJEVFx!@!@${zB&`RggmYWF%r+C#EKF(_Ju8ftb=;<>T=38Nu9%F(B z#aZutV!gcbV8UBK%{S1dGp{9qLN+=;Ap~l($pLCbp!OdS$dr|n0aKsQV2KF#0d5Qg zxS3x$>p+onfQUX@X*B%V z)&gr9tgp($6#>ww3id^Nr3X#A+EOgIVqp|DleIsSgz6v@Di-o0*G@YSZ)&e7g(x8xVBX}Mi^q18e)P6 zi)7?+Ql)U^g+NN2kli=-j1d=jCv7mXkZpr?m*C$pr{GEnlJtWR$~Z((9cmKOT+WRi zdUwR;v%g`k=9qB4%j=|M&3yB%!*XG4mSchkGZK56Xb@&mAZGz_=$8v5_l(St*H0|Xv-Penvb1E=iJhfpY|P# z-(}LlQ66RQ}g(i3~*QuAC@+Oc!05Jw0Ov%cH-0{w^Ah>l!S`KE);|3l) zgaUu_Dlx%+upX!YmKE{lOOSN9COyn7KqtX`LxUoS*mctB7G4@$0gKL=Ji9Femn4(g z^AQ9vR@$qhO{{}^YyGduR~(*aXqaon>R8^fykkV`nT_RW>?1H`+&EW%@ruEyL0(>c zJy=8d@1M^<68JYsV0w?K6X6r<>(TDTA#2r6V@L0vUohp?p_i|mRtgJNkAHY@^jej9 zw&W&Efk^w^TDP;ywPV8+4^Py|iSRG7aDUYjwbl&!pjDF_O9xk4rVOtB!t_Fq!H-}3 zDkkLb zE#n_k$G=&#rAKGJduLFoRWouw`DRcR-_$G3JeGt!yLI%(7hgKQwtAnht=?@eE)6_; zEU-kY%X>#aQam9U_|N0oSWl0Mbv!(}z;`r=%%m^tfvHi&YcRZlr8lw*9-yP~e5EHI zFEbeUplK5Wb)Q%mfRaPcX$ZwP2S_i$KjFIe?ade8D!v+)2B{KVU!Npgs$oE{gA-Z= zGnoqjv*dBKA}~A-s2C|Q3>X?Of<6XNO!fNXB9?agqF-c=H_uiD&SDjapBsWiAP@^5 z0+0pF4QUI94IcA=M2NxP9mN$I3ugk8Esji@Lhc=yxKP0Sh)k+KALtPtDBvF`g)i^) z2sw2IIYq0idk*y6 zNHTYs|NFGz$u18y2?NiVWq+kQxXjdrGb`0 zjSe&@8V0J8F3Fb2GoqBo6eFKz;0Q7BnI~#a`5CJ;^Jq7JRr$5*kF9HdochY7DZ8RV zs>~_+Vb|Vx-wLu$_k!i?%UgW2@I8B-uO81Ry`Xve!o)>mKW`m<>%_L)F5iu;a4%`| z$)iOfW1GF+VL;j7)Wp|PFP}Dl*m&dl<*O6#TADR2+?yKtxaZ&=&%}sq7iC`i_WQB7KW<#=>fCW7_V<}?I<@_~KXyMkc&Gim1|=r`S#kGn%kXiZZSY-q zd!!*{Po zo$2xC%4XH$8g!hpukF#L8K>U=?2q+V*MD#8C|2|*Zy}PXWE!OMOZ(Z(fcy79>+tQcnzt*~HWZ_`z-V^P{pD9;&L-OXG zW4*qKJHE8>@aU8w3m0`5cQj%4hO|;OOLg{ql-{xTi)W_%a4{o07Q@?95F7Wur zsi7B_Ts+xaS+U)xc^&JpZ)~4r_4s%~osj|8d%aWcrTjlT&paM=slt(kjY~h-*C$Aw zdbytO#;Iv@3-7Gld+QC)x7I|PU*2xLUDkU=<<9xF8l0)KJM;1Lr)S*E{%k}**zC|Z zZ?zsgrRGQVSAVec_4iNp9XP*_UsTx&JBPHX^HSqoGmiw%8>u7*E#A<2%{<>>A5`p6 z)^g*}EB#_79{Y9EnXa~XMs}Pz#ru_wQ-`dsIkZWghU=DW&Aax@x`v+R4mRAkbeKIY zxPR?E{yyyIP9N2ZZ#?+?qy8Jt1tcczetAm+Wtr#Tz|82=CpR3Nv$69xT`qK-KkD_9 zpH)qmI4Pj&ZTq8-+x>F+(A$}hAN_SdW%B0glcTroJRZM!!}2BLE)LyRRJYTG^B;MQ z32u4m_YSK6iM=<6_pRo0;-&b_Et9=^SDD-QTD|q%CRgh8&dRPGeZT5`tNR;ypN0-x zb2z$ZgW!k`-ZOuyHMVZ2Cbt?l-QAP5+Z^+tZNkR(?^OAqYHY(QxzWD_C&%A6|MeuI z*T^Yx&7$IN*{5Bec7N*1-CrN5@p#jQFW%m=<;~|qYJNLs;U3R5m6W{RmO)id3>ejV z;&Z0VV{x^Q?#X!n!!8#GAA0te9Mh-Gs%H9a`?1fudR5sAbFW;wGG@~1>Vf6F?j9N) z@-_y+@3=UAoSU&hu|Rw=u%}yy@Dz{b$BZn3xqYt3*t#htKbN?QYI5_a|mIx%qj@wW1S`SI^$` zebB41ht3`GcmyGuCK4W zU2@2N%ZE?aT|WELAFux4x24;N$i(j>=X9(*RjE{C^16YC#?BnH>Z`T0+TL9duxR%4 zXV$&HcK)+|%O*CT7u|g1(S?tujC$ky!*8FR)b@|lOIwwEzs%Nge?@+q*2}W8_Sz|L zod}8iEk1or#h1Tn@=fQo4+Bze?|eQ!=g9B-ddxYnvrGbwd9*H?DcerHdUK9L>8uE#%q<@h|QU z3tBw$$D8q2HjTX5%(I{Q+aVXrjCl6z+i#4moSFIQ&=b4obUku8F#N-MOM8xfzIOi- zFYifxU~Aa;$l=FhLrfoM+)Wzz#ib_0`*_xSw4%!UFU@$Z+mlN7VqUJ?JZSefclJcr z@`!(C+?eYvr%l{=W%KT54i5LvP8!tZLG`ok8x>x@l=gP^j{HA1&77J1hkx^azpZao z{-uzgZwK^?nf~ei0Rzi@-2dxibt;!Uvph7@{9tj9icPLpc;(C==A!QxTG}Z`u1;^* zA~mO1;p&N34#j^MU#`zr&AzMr-iuprKZ?v$;&03wlfHf8%CFB@-}ou-(XetiGR(`P zs`)ARET4QDkY1+a>)%aH+1~Z_X6sfgySsJU=x_S%t-X^~AGl)H>1v++hrYDx=U2vT z_nqe*xzKxdn|tGHZoD0k^!m84%D?>l+wi!`GwUw8dNHNx?oEp;l~_M5J9}5-W-ac^2%O~hD0Rp?{;iv9n;E(RqLj;Ijl~6=ax^KrknGlo|`hf>W>pX3_aLq zW=OLG4V39EX1BZ7+x7+;d z9^2C9?XS}Dg_s5_8qD5Uv!VZ|SBu6U{{FYkVS{`VPNtQ=F=}3y&%IQ&YWU_&bMMdF z_S>o~|Cd^4{4{W{xmKUfWxX12KU}Njjw;`dA3ZvDu4l*2n+m=gR-$Xa_u7vRFMIq* zt3L<+G$Sgw!MNqaLgRn(eQES@|K?kI_t;W?;>VTu)U4a(%7;Twd^dY?nceem^?sN- zr!aE$_2+uDxwtLz=dnG0`fTupN;~f525kwQcgADS!ts6c3roJRXx-8mPcEtPOO^Cb z>m_dK5cAFMoBgf@cG&Sn@Qv%At6tme^=`a!WnGESezG?^^6D1@2VY!wr!uT|JKeE$ z;z--%U+Z{=dLE4Jz3<4{1!k{OpL(neYk0SGOt0qaZw#Nf`8@li?tpq9j-I9DC8 zKP0hlU*6Dp#uK%}xt42=Z|>jkReQklil5n(sjF_UDe@1y>0PeT%&+%dpa1#~TR%M5 zWPX-M)1ZLgBw(>YLqa z45;g!-u~>Cmmhdsz7RONeWPV^=!$-h!co74zJKua+}cmZx48Ul^WJN|xR$u4@#w~T zj{F!^S@%&b0lIG`0CA@dxy;5l|5v`Q0ouXyLD^w{px0?O7Bs&UE3Ac zH~GM!KKWIPrp})j>#_2e3LUQde_r;bdf&W!qWKGJywe7i>#}X~p5G7btN+&fBj3Kg zZcpUUa}l54?()f_8Smdy-n*RMd&Q$Bn-lUsvTn^D8s2}w1K&pv|Eh9LeKU36%|oxh zI3}^-(kkt%S9{rOVuyrHo7sZHzSMg)`L3tO>NL(Rpipm9#3~Y&(J9Zp{DZZINKa(;x@y)leb{riH=#AR$h{DQx zSl%Mg?@^MmJPB6Nz}yg=`C=sSHHcM|1dDboZa*k% zL#E)G(_LvP5Z_Kfj4}p9;S*pm#f5BBK+Ea^NN{ZvBRccKVUrf7LZgJjo=GTKAj}Y@ zLiOs(HD0NX?0N#bBsiv2=$#@wa@7z=kK8hFJ{umnDe+U6=|*kF@U`mPst+O(l3(zg z5qa3k8So&Ak?~rN%FfLrR*$ z-v|!e_j9`g4_60I^7yN5rOu-!ZtJsl{en(SrmXYmd$7+tzm4tGF>~cdJI=28Ije!a zb@LL zbTm|BxfPxy_&5d2FF6-e_rdfwt{Rf_`G$>@^gp)(^ntd)COFSd%Bd=+T zo9?W$XY-fGfBquRC-pB~%l-gt_ON?{t}m-L(c>4(+B z7F?dyd-u05?@9kK;9RfDPm+dIT)sA`(d4#uI=_E%+@Kf{m0ko@woYfHx8E^-0u0q-}V0B!lE88yc>(e z-|(B`d8EwdeWq=t8`U2>reC?|c4gO{+x~<1x^7+3E4g6WpwVAdY`XcGQe_674^J(K zs?mD+y$k26ExTIi({g9K3DpLDd~jMb#k13l1D<221UyqNl-7$$T|GUPx9aN=3KHS< z!aqh^)RSD0l?~deO(E3=T@ZRuwkymEgxc+vQPh~$>X@X5jE8k_)`HFrP%-(jNoaIn zG9?&W>kQZ}m<*}_Rgr&KHFw;)W@SX=re#@j6(1uIT7T^S;0MfIb=}-Gu3@*P*RZ7w zfgMHiU@#ulPzd1*^-V-o&RtYVteQ*8jcE@f(L*88`#=ee1qUnurX%3Y53PZQl`@zH zEsz#7h^r0AOIY>t?qcp1#!6xfLTuICg%KshN;Tl8#^mdTfGrS|Gg=Q%I10unG8P2W zL3+0>3Qn0~wKe_FD}7UF6tPEV#uKPeUvPeoGs=JlDn3{?WxzHUb7QO*IDG2G?>?zv z^+luU<8{TuZ;a0apCRz&pU*!M`2UdvCVNdY`czZ=zZ#FQ)Tvn z*mu8}>e%+Z<=5kIVQ%icn+H7JJwLi+Mt!~Qs{ulpy?F5IgJoMkth#Asr{w_`y3Xl% z`tq46zc%bWTOGW&zW>NH<{Pb2JOuyNEF!YpK0)gn; z2lR!5p5a(jIH?*)_=OvMd$kOw_+s0Q9W7x%OJX3n*E9-_tcKggkvH@^k*o;*iFH>& z&}}!v#`?mXLO80#3f&Pju40ii@2i46`2@lkU1JuAVPI)gsum zmKFI-GkPIK&#zTO8%;`{da2ILsS)@4?s;!prAINp!5p-)f&{H-_4tA*Z&sLpWkKob zb++w}8?fp9$Gu5mwAnbwr}pO+rvF~W>#fnVY94=S?!mX)T|W3}{PnC;)?Hg0)4~95 z4xgFhra^~@uV$GazgB&`;`-Mgm0DD`|A{3J4t@8+xFwP0I?1$jgrMiQz5A&1N1o@m zhurv~#)3oHyXQY>Z7K1`9W7)AnrY3v2f$9r);CDwf&jq+4bb@pwFT+KU;ppZ|IYidw=*caKih) zEx!4A`SA1amMc0v;9mIoqDG~%XDu>$zW3uXzx}&smu_x((6s8R_s5j2cDC=_>7}w$ zC%w|___jr_*6uUq#*96S?|a^z^yTX(-e0BuvUBG6QKe@M8G1SENY(4B+Wu5|v!(F# zXY9SNzN^|~X~k(vKL052R@L-QJ;s$ES}URF^U1Bsoe7<^H{?dzkd5v71hpC*b#7LL z$Mu$udUwvdfBmvMs^$1u+kZLppiQs!v)`N8{_gq(N!@;%y>D_HEp&8}9PMcLh=B5Q zzr<%4Afg7EpruXD%_?A3#X1gLO#?gT^wl7uZN(na0vgm8!@)>FUl#NU_MiZV0{38Q zXaR&zDJ-xmzH+3%@U9MCe|bV@$ByOLk0slHfEz55-^c$C%JqiI@UJ-_)Kj-9}A; zM3@-=Jl=2B&Z%K#jcn0?N{LM1+Z#fO&M-@{q;YdpLIcME2oL|jW@^D<;E4YJjp07c; z`@!MDY1z6<2BJsBc%vD~7C-QzK>B2Knj=7C*n8#&Zkt?KM+HM<4=e^`;@w;_nK^Fi zZeoO$mG!Q49XV>_x(>Nh&TfooJ!99_WB(Z8e~j=yMwr@C(a8K`g#R(Zc%IJxp%I1- z!#-?L48OpF_=)#cr%j3X^PC2a%{>pcDR8vc(SXaQ_<#;xP5oar{mM#s5AkW~anEzH z?+AaB&!rMQ{7R_n)Sk*u$~@#$RK;f!{?$JCtF2eZ#8EjZw(KN0q8hyzoz01P*6i%C zOe;Eo&0)_DjK}>ImYf=qS=rY7foZmaTx-F={IsD1V+)~M773>u;5N}nTQ_4rc@Bz;0w-(ie&<`AiD=-xmWQ}bc|aESM#qVhhIn*4pj{-@0)wXi6~l0`LrCb>w_RbcC)?uuA~lC{JWy6K9k!2?~6`PBHzN1R0t)_E70+xT0WB^{$o;y0>mM#)!xUR1)9s# zc=SK3t>%RsZz;&+iQ6~Gr>N7@4G{Jtbju1gG1YF%x1|>}jg3ee7zteq>j;~D=)mFF zPiWn|ZOgU;X$uxSz^ADFzm>bL22gn#n0<;u|0j5(fPjD9RG*@#{|Wx#aLtb1RjM)A zrzq@yBo5e@j+v+#RLWyvv%inw|F%Ug^7olk;qR;Mzc*R>cyFNLOVb;Nzl!SmOzQdf ziTS^2gn9jR>}$cWR>=P9mjyE5- zXoLTUw8a10w8H<}w}C4%yG29-0bG_Dm5>-8fwx{JCqeNuOtz0MQ40y zVj|q~Zio<4(h{-`Z1gw!k4WIy74ERqCEgN~9O5EyqagK*n($4M*x<-U1b>lxlca6Nz7m4w4v567d8&n`&Z|Mt- zBq2Tq^f@Yq*9k4rSbUJt-gr@PRBU{55`IZY3X9<)>JE4Jn&JLoynvK`Z`nJlYeHxe zD0BC?7}TZ2DExtuJG_AC5<|O1Xji7ff`f>@z$zR>3)O{7ErQ>C-#emvR2W?H4izg3 zYe?^wW=@IUp$f!7UFr>2z=ub4P433O#eyz`;|d0lS!8rvXcBz^dadOx37GIOkgnu- zxV^g@mP*&;q@*~sC#an9(V_jYv?6qc!rGPq@_~r8H&ahXP9JNUTH90Ce z97{05c+)2;0m>;M4k{nmLERD=U`%LVILM$M2r}Fp9T9814vT{@pn_0+i+in;wxD<{ z+|a9s>e??U0_uyFD16VYcp`jpLEs*Hkp>4)OI%n_&@GZSEX>d(FoIewrciWLQc^VB z%nMdFROF>=R5zzLiAjBpl)+c9x;&LFjCYQ~VXaIzyt6klDk3^utIk8V@yzy36jmS8`(5YOaBBR0fU{)i-jd0q#n9#(Ybdew5 z9)RonVfhW*JE`q*(Ei7j|HcAygNZh`EUb%B8P_&7*7gGiUOvXLj&uR5Cv-C z4uSVE29?gi_=%znOHN3Lh!uRCei~8IsKT&!V6XsV8=7E-mdSX5(P3#o{R}tWL1|)C zC~jRIad1^TXod3&t&n1%my!@>1U8ZYk~3auS`(fa3QaxUgAV;O>_|c72!)vS*YuT} zqQa&s7LHxfThC~)Oq#^qlo-;w7A?LdC1<1)J1n48kdPSi6)JNw6qz0y31-IorW2yV zp?{{8G8Z6Zws&NLxqEWBVF=)j@ijUQ>XU9CK(sn*5CiXtadGG>YIIW_eb zPK=9Bg6?cIw%>hpp1pbNFLSAPRwDl9z1Fdm#E=eG9@u?>-Wys88Z#s>oM$2;HZcym z=Xw{O_j7eC6Bz}q2^jg~XIHFn0HV`v`2X z`OutZhnutE6lgdIH$N*Czi9iw@N)W{4TC&tATfN@_5pYqi?R2qX^ws_ZgEW1X9Muq ztp|h!+}#P>q2uELAUwFx@UO-}WL0OO#ToyliNw{r{v_mtWT>}pB|JRt(S-i4c))9T zP-efj2@>1I)ITV)v2BoCd0ECd!5xa$4wv=8%2qhiTyXiNU64l^ELr%lQi3+a3imx1 zI8YvKA0)3xZ{m*X|rdI#!Y%~Y_=e* z@mvsD^{x@Z(Y}y22eNxWW-N49?KGyEp)z%>WG25z5DoUSkEm63_z%k1rz zRJamE&{hefVl&d?jxs1*ij9@l%K%o;;M#pBrrr@j@`|}bRKleqW$svMv3|%MlY2l4 zu0Z}__1sqoxW6V7)>(iEaXm7r76ZEndDPPbt5LkFH^p%YEGsRhsynk%d+-XsgfL=d zoQZhl?-2mBsK_7oAhJ~XvB!D1sbZOj{bxuK;wfK9~Qza_8@E zPWUb+T6IuBisIq%gha}Gpo1Uh0SG);Mmd%sxrqR;3eV1l6@Pe(o*=0Ymns;m&q^G1-&EWlqA4po6sjwgw_fL2L2oJYM zd9r847zmt;TEHcSk;aq5C}aV9*`44}ybnsiw<+w0Z6DwYG1w1y9gg!iq)O26q z9MOlM-;S23+8HW`i1qOpf&^0J$XF-wMP|VjFCyTN;|Oem;{y^cuw_Z&XU3D{maxL< z0vT{E(WpdzyAz>XKOso&gK1$jiH^EcfU~pw^aZ;a&T7dn$b>!;p4dS2e)z;7j}~Am z@S_e7!2LSBPuu?KYWWn_>c{}x>9dP4hMQ&6yYmEi016LkX_rZ)u8JG2p#K7GLq4Y0 zUXWt7(6pX~5U}}%f7HWBc>`?%bMSI6)K`AsIFu{Sv;03J+9{1j3q;^qQ_)6lG3 zYYw!3snFTZg=3-`~tNxfrek;nQg6_uITp~Y%%t# z!xPT@#r?HruuEf2@Sp;;`IqL_u?m()jVSo8YTEr-CD0S;YSEz3ce z47kDw$3=PAUl3$b-;+CpOAs=r6fJ-w&0*lKv8!lUTjO#FSEKr)uLmBPgCBL8i4FTV z8HVEQf^JhJ9L(^rbcZ3Hb7IvQCiF$TMUo14PG!N4k9-jH3==%47yIuKLHgR#^HFOA z8vm=jMul+{^hKcOTu{&yfeyY;!ZJ86CBuQW&jWIuiUw2OYg}QZ z`bvk2prBEF?v{eaGWB=KL!AgsipX5^Kcs%DMHG1qh+#w2Nfi0`kqpCBypJ~Df(Iu_ zt{eZ9@v-vYS%Cq+Hr$6RW?=NIU0^5@G4-*p9CMX`O*>{1gs>g;7t!t#xz-WI(4{>g zbfU$!4ox?1`*W!XwZV@kTI_`;*79Ge2u5F-Yqgu3DBVP;E;iu^wl|56m4d#WEj6oP z6x>b#yD0c|Hj7O_iE5qh&4lBNmCmz4hXWl|?nrC-FzI|Lg{0^jaz}XqDDhAS{IHUS z?Q;|R1UT47ocd4}hE;Yr!wPRzb;q?8W8yR$K1>yv_zn=*kjy{e=QD0Hb`#+g6G>TF z!+yc(cjkgZ+#5_fHH{P!-7*tgr|>WIScm}%W>uX{4~<7%!Aq(SiG`WKWun~yzrqAK zmXFzwN&Br>QZuvQPD7{)g22-sPIof$?iCqHpjQC`_YMCr&v=476TtY!e1w>16hYQF zAmIcF2_#{BEF-hPI*L>r1JFl{$%BuCaF#NhMg@foUK|e~fCoifsx%|5xuC(ZprF}7X%x8iDbtC` zoHC>sbOHws1IrSEKnomJ0yfJ&%85<6a!mStD3t@R(}arOYbVkjABilC$F$eiK|sR`tFK!k$Sa;ldFHalD&X->_7#5?;#-fP4>YUvhTJz!E_WvrpIz18L8hK>3q zm((r7gaz8O&63muNZ>&^HHEVSWX%CP<(BG_1C?d8d#ahuBrh%_5lfZk1i{-X1+obc zA)`t{Mz%b=&8_<-vjy{jGx7LGJ;JX;ce%DV!#T8ilwXFvn1)5?%TW_ND24102E8`z z1GfTdSInAoV5*W3wQ9v2UG*Y(nbyPri$1BAj0`K(VV9di_d^KLCq3@|R(Chy)e}4; zzthlox#9^EJeZM}+BykZAobf3K{Hf491jcl0>DB7RUOMg%R+vhEjQmvdJ`|SXC75` zp{b`#IDKEoMN4^6=nRbUzu_0STEF_^;L?@1!TY*8bM-XO;10_AB$U)?6Fiu~ejQ{w z`E;y6)Q%EizS@OiGTa_OMK{%{h+rPTO%d5Uks>;aH=;^=MSWp-C1!2+`F3Eep6Azr zuBL3U?9Q9u;Y#?NQ`rf`yNfJ46~!Ttt$-NCrkV;4>EU{cydlFl-M;2sm;UJ8n4F3mbT3l@Ca@<2%}bp1+7H`2^q zF|l^VTpCNYMf>hJ1Lww3;vA=XjbHfrGKrD-8D<45@--7Yn8E2iWCwv8VS$wEN#uw| zSRn5LB8;#p1@2AdGi(CSjwS;kZ@@{|-vNV#IQ#>*m#3xS)u;rY5<|iwZ+;-TjN2Yd zaK&!TfZi?6zlg{y#K{hgdYUGCA0VPmi|K49(Lv*yJ&I_PIiATG`P(MA;ZK`ME535O zOklf@LA}G9-T9RNb5#O;c}DWG5ho4y)f# zBx)cD^DRZ%4k8E^mq@`SKpcuoATK`eR9ph-WhTWXCi|Tw=B&%NA(XhZ`)3oJqAYdU z%_M#??9{v5Y}Ob|m|-#8HNk_$FwsJa;d_cCrAVD+;<{-|nkCQGr{j^z#99sYo{9B$ zKPY(G5c6NaH1CAV71a(&Qtz8mKzW+b1g(T@-8aF58Ga$1lYSxNl{oamqF3^EQ-Q$c{vniLkOyJ&Sp3niEw`tD8#9VD(CJ*@$67a z!DDcuI72Bs(+T$}*~9_mo9+~@RSrp=XCVpqD}d?lgXQRz9B~vE^s+ znG)S6z)w2EC8H5GqNH%PW&H+)*|5+Dj;GcBa1B9=l)l0!)=2#j}ETr2@ zfd_Tt*I`78CD2=8))HBmZ-w=bg6>N@8Cd#jE(=abXa*J#?^h6bbxEcP*|kC@mLM{i z&XQhs5!=VZWff(mjDD2GW--H=;Ka;lj*yNd)uga;hWu#N3TBm@`&WXKsw%kdb{^$} z@=+CdP(Ecw5&3wB#)T4WD`1A5W!|t$kYLH92__nISnp;ofCVk6R5=!034-(wOUl0D=^FPylPj5#td`k-YH| zf%EV2@(Nh0X$M~<2_7*)jxw1ybWjOaX`+-7?+A!Un--B8=#LYTc+e=^&_Y5#1{yJQ zT8xBSqlDWL2_K$BBwSii1C_rMl)*wR!v*C%nJ_>>l~Le9LG_y|#i6301X5!fK}x{7 zUxC~Q#5mYhElH6B)171^!d#jmWuum&Vb;GuBqCZ}$8v9v5^2$rh-CasVuQ+Zk<@pt zFU9as%W;`(p&U>qGxpfGI5Y;#qmGnU91=AaY3=1EF9eg-q#ZgaMX%i zbaP3h%s&-|Dz+TmQBzR?8WdtD7*-pKuGI8^w>t3EBGTsY$xXhplu$HXLaY~@Jq!*H z%?l)W+@%zO`P%ALV`+e(diyomKV>Bhdkk}S*u0VW*c+sk5OZR{)tJqc3w^?tlR2^K z3LC78TVDvs=WmQzOXIJ;4$%1dum0t0f85NW(R8Ub6zoLVNUGQ~w%imOoWy80T*7d4 zaK6o+Z_b0!4mWc(6bOf9wC-(LiHZ*gw^zZnHZZ&u;o{biaMg>8Pg`h4f|Xe(tq}9c zhC9IsXnmKcMTy}y@c6?u8Y#G-!w$Y;5qF>Uvar;_P&ow>_MSvo5bSvYUjcfgVfq#9 zw;((AK55APdG9gbnI?LpR9+S+XbN)+z>Og|Jpw9Y{NqRk{tQ9&?xy0XLI~BM4~nB| zMW}){6RJ|WaKIyy1GC0_{j`X+;TGA)kb?rfrtl7vRO-4Pl0iWeg#{Y@5!C8n=F*RM z;G#BDaEW{Z;lYA<1TddG(yVpJnkhhr8n=Hd5qyljGqJibH52cU!i`#>tv0);wz7OSK)9Na9{i|n6!n~m z1v|HO#d1;G@?74gJis)=Yj`l17x&8aGFbTpld?9Pv4n{cxGqf6o%xJZFIZlyTT#I$ z@pIW~GE<%YckXbB?USNGe{zsiWULdaky0w zV0bWJtxl6_Xet=VtvbQa11?thnd~n3=raTl)X#2!lILxqh{gY`EOZ#WY1cUALp{(h zt&{2b1}Mei9?37;hSf#z+i{NY3xHI??NZQ@fwqJYZ8%RXT>xaw2K5R?fg`{i3QniK zqC~*S9npgegoptrxXhFA*!?x}5y4%aPVl6Q1QxoB6Aak#BD%Zw64BjW3M=i>-E^bH zl8>6mtKliir4m%IL+@G+!^_R8KxST*@>HwPFwb2h`XMG+_+?&(8H2wLlLoKe zAd@Uf3S8hvcIMEoGLA`I=F{AAPI(l_ zSAZBD3f^=G#CD4`9k9BF^97qF2uj}}KCxnikPVkSlCtdiJrP1b#qCU!V^%c=YJcA1 zPoTlEMd`1=gBd*egHtvHlKCUahHzDCk?_evlDsxQlU~UHh1E4&m4>}B{%XDht<>D~ zRvfsigSclYmGCx-NuR77qyP=(V(ML4Oa_gYR|z7$#dfRvP< zmO5>!M+CP1MjT0E_@|L#Ws(i!&ELuJ&!Wgh9?}?Vf-xot+>HGQUp1ABr{o`m>+_KK zR0SRsO6Z>?TUh7SY(1< zJkOBp6Cgu@L@6fGsbt>ZOeI*LDlxSk}L6HvSo(4Ss?8uy)cr)s{iRRVyLGF(n-a0GeuxEba#aqsUq5d>Ef) zXTu~IETsjfGYm5cueVB?g{} z8F+|?^EK#%HovM#EOuq3B&}t1Ru1%x3FZ81Ceo{tl=->PVG?mKu1=CDB%TjDLtyQ{ch!I9tmkJ*dzYNn~Vg zlUPTr{z8#bbqE4&lMJ(#BG4j9#0q{*L%~&Okt9;H9zpI?cPP-@Mp8r6B84RycK*LthH#G@tn`PC zy;?=&Kio{Zh;*ovl@#!LFQlnJyFOWg2MhHQTq7;)Iu@!xCN`IX;e{%YYApzYg({Hk z6v09j$gq~A=&(=)5*$JhEL4G9rO0?tMS)CiMN%+2*^;Sq71)&G zF29bsr@!0`Ph~9XJS7F%`|dOj%>6tC9?bp5?j-jx%8^J)6sasQ%8^K54^kag8}Y0EdJf(9=PtSp}(?&LnEIlqpk2Sw=V$Yz6`a(vBZi&8T-G)58j(4`$EB z34b}Pco<_6H(smr71s8@C}n->KbX~Zu99x!RTnCFf<+UkjmACOD$0GK0uRc4OT3gj z^BM-#O+YX9k_HDLsAU2gl;8k?yInwy6CEJ%u?y%Cfz+32DwZY5(okQaNNln!1oc&l z{0@kaz8II|K~ULdvDP3Lcc_Tv6)pOhU)pHi3I|k|-TzjoFI7;yi1s;^* z_W3tK{a}w=*x1crE89212>q)it=5l zz=QI=J6Ot>59|c8+#+kbnnA-vfx$6s03X(gFqTw_umHOiPu>}B#l3+fO5ZdRB^H7R zegzPRLJ-JCD?zXj1TryQBFr1cI|N&nL6RdB8Lym%`HNg@HjH_+Ubs}`_cDnhzooDq z|A#$rIbw3-lyjF7^&Q?1zedx6CH9U250==1Y$-n2asWALp=W~-b<1%kYUxV!(1j?( zm1s?_GpAOrMEz~fM6F$k{PUcN+PD&Z;zHEcl_+PJGpBa0MAc!vxUu4c`QX7JAUrP^ z|4YBXr>p9&UtO4V0p2%|0v?`Ennf5(OXQORiO7x)Ek*3TNoDE`_x*~F&L#zR%<1zJ zdd)7*tMhm7sZzPDmUT&vx|wT~jV1;)YO?|lYSficL{h4zQIHWrF?%$K0VM|?#wl8& zQ;Sfv9^*_A;zV)Dg`$-c1st936iaI-iss{-DcU$uoOhvU>qIeWyfcq>P85wMND6f$ zmDI$EQUO#{4I#t*MG|3RA`7m58*anHw({V-El1t(ootd5SvwRq+w~JN~bxV+B&356UE0-WCH^+rU*DgV_$CX4^FF}&?q6-&YzXVC8xsrtImq2VU5iQar z*4{~C<>tx2%wH2~b0?a;KqH2&I*qgB?Jv91IE%jKE3P!ovOngA###6iUUlW;Ed8eQ zU1^-ff05FNlO%JrYZS%28O#k7z`c`Zr>UdT3r!x}D-4>c9#dfdhGYLq8dYOj#^s>N zr^lq8;A8c85)Tv*Zb~tx(@rQrgEeE?Vv<=Eu1R;HShhsg9X_cj!ZvzMx)b??n?QC0 zB6i~h7>U)K*@9^N>%`dCF@{zKv9`OT7zy5b!{niz!vhjLqo~If*4Vj||1?JGSuUVD zZxS{q!MvV@#SvUAKQ5DEQBP6iv*k|W5Mkn0IEh0bHvlojp`NDPR;(m45N;hK>EPO@ zyT~@ICT^W`3bPt>dUS}c4<3v8<7{l5Rn73{$@gv?LypN)zv9OC5=k6md{ztwnqMjK zpq~A_#w2$6=`aj71-x*r3k(BJ0e4>K0>hwFz&8o3z6tUb$hLRMFl#AAW~?X3GK#$S z9zj}Dq{aKB7jMFqaj&S>zeBGNGj5Qq6afz;Y4b%Xh)`DNha)XPHvT_S)@a`W-_2P;rqV?J=5!rz>O4itxCp(a_TSy1;ngUx%4ONn= zVpuDej-U%$^#*s8O`uFs(l-=%P+fX$m6GO?6v!Ds93&}_q1&V+d1eI?{1M5laN-!L z!Z~4m5j*KI+qRS8@lA!5b(3K?V_&yS)o=O2ja8H-X7^hK9?Wj-Pn@zVkaqxa$gV&- z?U31ZEkV}|MeHOccncR!X(i~!v1w#NFj2qb>!*fO7MOwW6nHQL19!;`FtIS-;A5zh zQ#)95w@L0}yu;U}x$IzY&qDp43$zbqfb;3!EAU`?d_Hv&n?M!=;$Vvf(q}Kx5^)BJ zkpRAUf#}Ef&rI?Rk{=ZHy273*t_jk^sy}Lr328`No%N#v52pI@ep1^pKLVNZxl?`w zQt1n){0QVMAY#}l_KS=BWW&jj;17Z05`^z;(gBm)(*F}L5SMM?Zo;cS^U~NtLu2ZH zR^Y*WnGZUpULd~$;!qj_*>s4c-bJH$%LvPoQZpT#f4>|i8ug2!-gdLq!^nUm3-vD7 z@cKsx1Jv-l3OtyH(npDgi!~JnGsgv&O^%T@755ZYkxW<97S?q!1djh9GO=FZ@Zs&V zlQnL=lib|-Kw(v#4{Ore4n8^MW`A2T?A3?7^ER6>XA1iF z3JUSCi-!t4D1f==i1S#*&2`QcZO)Uv984$3unz!Hupr>W+aJMo;#WkhILH)8_Scdd z6ZP$B^7-&0sc(-IR^C}Yx@24`p&O>^W6iiwmUt(^V+9@*$BN4&OL!-OK%%b5g!A*D z1fpIgVKB1-`T3d*Bj+Qv#ZWo0cNTmBG7lqZ5zyDObQat6V$I7S2RID;_e9_b=66`Mep87sFORFjH(2R6{~XlzX?JXkE# z?n`6KtDivpA2^9aAj<$TtQt370(t&7QpjRf*hm>lB*UQyN zRdLttD>N()DftKU^vokt#5klB$nif(T?){xC@ihVr2&Fy*<+H4K%EHBMs%Qh^)Dix z(=?K}CnUVsK9O%px5CMeXlbDgB)ut2j)>h70d2gUY@0F`xoYTb1li8@!|VAq`& z#U?-v;dEyIm{RoT#r=#vPtdEZx6k=?wiDxAql zrB#e19bKNrP}F4?axrnM)m2>c@F$6xDM+iGHCSB*0+j8sXGoq^B*?>MARYkg6ys`0 zNy2HtxK36(xl&LB*CZ5vmi)Xl7n1WpBIFh@(%}S5!Dm%1MUKb(F)eT|znyP96g2&6 zE7D&c1Rh&Fcg&Tnb{$17A~lW3<41FnOkDgs%kV^sN zx8e&~cGX;}NwH~AgVhueVJJ-jR+C^A9xO_0BUuc5eSkn70V1qJ22crPPGf?!quicr zLXcH7%ymGFVKZNuA-KKXRB>DsAdr}51ZhO$`I915z@~{X@3ka469oIVvfy?E*ukiI z$pzW&5K`3Q5;r$1SR708Nh`&phF;m#Mk-4-O0xJ;E2g5l2_VbY<+8it5~em$as6jo z=;n!JVevLm;lbh^-<}jN`fvqO`dMNH(T6LLHz~4=A`Lr`Fu^pQ&44(p>=4|Z>qrnR zM1g!s5axwldI4p0l7Rq%?t*}PIy*qnTM*E40;#AK0$Ca=wL)!35U*e?O=BOy#BZa{ z)-S)mHuwb^!t0G)iINECgzWCq+cr9fD{{j}3ze<-cTM*i4&i^-U)g(f^^=gH4CGA> zQE}7AP=}m>I)te3pmO!^LF)7tim;yW3ndF5^+SrhPm!$@=^IVLY@>*03_(7k$XbeQ zr$}Nf3G*>U{-nq!6j>c7!)U7@^vPL~JSd zAnDheaN$c#^o?tRVkqvz(sTy?f~641hy4_>0YP@$jo~xDzc0T423T}jFSbAFxId@j zael?PK#U0%mr=Ic2-HwMBArawvywn*HZEYt^Bp{Z3LdN^=LVAD2>KudvTcyl5Jn*L zpO<0agkE5-XAeiEf@*+ShKIEkd?Ff7J%Me?f~3x1B6MNF+zad=(3UgAAEBz>D6Xe0 zID}LqRXp+OAqmF<9HkJc0uf4KB=jqd=AWq~H-h5XR9X6r!OCB_7Q+KV>kNF;6gkr= zPT+)@!a`UHU>p!2JI@7HMIJQWLuCz}76Z8JCmVX;=5i9pSk!1f_E<&Zz_vA7g$Hwc zJ(IMP*tQDf_7H+#+bWO?ITB%>u)jzkA$bIWgE9*W;JjUeZyrXvrA+JH5;)aPBqv<{ zv=zg>+jh90gAC;I3KThs6tA+^p*hoK_TT+08y@2bu7B5GH%D~2&z_pVTeP=m=CIvL zP~pLXJ3bnI8Fc{LErDDbLlA7Y1afCAL9pEt$is02!FEd^z7q(7?Uq1FPb3JoTLO8e zh#=T*38e8Pf}n{J$W}lcyd(mNo-9p_+6sC^0vR%eaBEGG$y22@QQJ`DjcEjFOOdV9 z3DS-t$6=?2(NL=GDRSopf;>wR-&q9dK#^x=6Qm-1ccrzUf)o<|dR0m?90g$K2I<*U*Hs9#g0 z$9#fZq{uH6xkQmg3rH9=dm^4S3#Fk_(d-H2@FIes*%QdU#RO?hk(AfSSn@JOTE8w0 z9`_0gZaV>S(073(zCrZ;iUT*ugV>LVi$O$~F90#d`|4F1W)$SkXwJA-T!aaM+!=`6 zI5<2V?l>%@8!8?FopE4?+FNCfo~lX?rq|7eK*3+_%bTV;%O!WF7_$lrTkd(h zs6=A@o*{djb0%FC3$)Yajf@OdS^HM1m+= zfebrH5S+di$lyanwsKZh8z;epWFEgeNDh=599HBOmTW#_!{y|*p6D;B3|*&ioug87 z`9xSh8c_?7W3CDh%JI%oS<)(QU=_%sV{+WD;s#cMJa?Q}72Lookn4aLZfnL0GVO2@ zD1ld>AVuTPPm;1*k|f|B{&(M8FHp;35HPISQ^ObV3)8n)mK0znj0HU4g;eo z3?$YJk%AWi5n-@q2&6WcOJgMi9O?!aS(vqZR0T!o6%YnD$1r6m>W-L#)aQ+4AKI;q{y+BK0?ewa`yanEz?nJsPS71ACEblmgD4HsFic!# z2Bw%|2vIs!q@_esNhL)@K@kBFK?D?3q&saTexG$>?R5iQzwa-e|MUEXbLXymK5N(7 zYp>mV?~-9rrj5|?P^Jw!@0DqcEW4mGP0xh<7-@1*<&&Nzk*h%LoY99$WX2^SS;`Ie z?W4;gH?k$N?W&OIllEo=Qcm7JYf06d;qcsaeDPYa<4G$&^pU!jB<0IZyT@6oe}MU` zDagQ8)T(3Arol5dNgq6QozrS6EFq6QozpGkxoaExra zE8Ngz3?u!1R#PO#US~#ve-Q{x#xSx;AX<*7ftZb9?EJ67qyocq3}Xd<_rx$C!`QQb zC`>0K&B%`eF%Af@ias-p`BPPpI;j*RyZ?d^Y^9*0&q%w!g@RJiXXFeJF8a9oG$jpP z5?HQCYhwU24!bWH%h>w*PjvO%gJ1{djf{W#I2sxd2L1nru2$44d+X<8;;B#2qr)7I zk`F~JNjE3xct|%71?t@7Ha2@O@=^|6breW987Y@jAf%g&B;^B8|Rnh(T1;v zw_^RLNb8dg%hyasnY3%Nj)%0XR6(U(S`bzhQ)gb_CxP2tLEsqu_r#|cQn)b`!9Gta zEb@#rjgdM|G>wsY5#X~Gf(#!cWuDMI+dPcC55zWnI%y{(P0J`m<86Z87R0Y+t|_al zZGzKut>6Dm&8+CV1@Uo_)L%91+$9-B(!^JFJfw+LF#B&0E$CAq5k@Wnv2{?NDv?E% z840XRIbg3BSaW!Ay`%x}Ou)E66}&byll@y(MdUtdCLLMJ{Oh$rh3WPM1kw&!yLYm3QVTq7tGLli-OEVeSMDqtE7yL7{jFCE+C9w5R zt7+RnKdV`+Bd;xe!_*&{9M#fZjX8yyW&jTTHJy&1Y3OaF{;{w6bfZQ6v-Fd6WIFsc zbfh-s99T!FoyN!kAUtSBbs;0&F&n`M)rE|ll?Zij85xLq3j2O;qkGH9Eg(E5P5Hw} zCT1{fJEZRPj!#H5j(3z(c*CF3`ItlfbzK|uKVPe)>KcRcoHTv(FF)tGiU{g6jmlz$ zj2^97nyKTVB095$P$v=?Bb8fv35=0lKs*G-NS9VhV8&`sMvAr;;mkyqF>(_KPfg8| z$c{Fm5YRcP?55MRA{<&S$H-ZU&~iCO659$lWFi3WFiVs_gRaJ4XVDm}T=)B5G=Jp~lg~J- zXC(AF#yD#W83od(IXWKFr|n%-K4Ucnjx>vmO2Cp^V-}scBD<B4np z)4SbTEDA$5BSXT~yL^F|wXdI1c zdiB=TR>wDu9y^WJ|DT%Zf3!blkKJcSm!G)mZy7CwX)>myE^lFNzo9M{BbB=7n21ow zD+2^Vs{`0gohX6O>HtPgN#uQrjENR*FcqNORE!Y_tqx${4ohT*M25x+H<$`gZc4fZ zLNzt}_L)Rzrk|1IfkK5*hbyFToIp^6D&!N1pe3b{umquKy#Af?CMqTaNByY_Mx;&o z9j^Ee%cZ(j!nP^Ww5T<+K5N_`;lIAz*dYoNETj=c+Zu!#QO0~pYGhI*#)_D0N|rFA9$XkT zVy=-x1y^`nT1qC4NQuQ&08z;?7*A%trRZzhqmi0sgee1y9;Wj!um#IdiVPR9ZeBTM zTyD<(zXc9XQxJ}w#JS(nhj}BoH+1|wBlm!C zM$qx|jBMQ~5ITOIk!d+&Px*6CXtsV(i^I2TSqMfC$#ek^1|c$VB&$L zDpFAI!UWpW);LyymW$Bg^Txrt9Iw=E!g(GUdieXIeGxV=!JQbJ9+{bn<@$6>27AzI zyXw5^w9J>0S3Xc<2Wly-M+-5{LIh_3CHkt8Z-d z&yDSG(_~yo|3268kpBI-OX;7M4})0lIJDo4bH(X??o2GBXWn_AsPQr_#OB4;eKhu% zsplS*1s+Uj?J-lHy@DyX^eJvwT8dyi07f1jm5jr@7$<)I2*%-Fj4k&G#)8IOmgXho zcH`PJ&H49>)_z$jxi=1ot_@=?O4s!DkS`;j0fslgZ2;Hkt+JRK1Ie)KVq1=^)hy(YDaL8g`sNKz7~lm zQ^&|_N0n(XZrWg^+BX6rQ^&}c5+PH^$kJoNY>}yBB>T8P$kZ{?;eKJM8oj_1%6mklPhkau=%TFr%rhh8k#GVpvNYU6$j_-w{q1-9t=nu+{ zsX_4cge0Fq@X0@_Lal$TYcm7>=c_~ifdc(+vG^G-7fI2-F%)mJOvpTl=^Gsn*|_v` z%5>{*NTmOHfy|dk+Y16&Adxy31wzdr4yVs0k?qtBVr0T)pO{mmkJC>Xgf5h@gnY`Y=cd@YeSH$|*zD4*S&kO&Rs zGZJ-6xzR$>GccUt&WglkK3EXLOi$cax~`b8`wDa6%ydyQ1!iGQEJLU7sLas-RK&SJ+6W`YB^NZK-tl0OCBQ;~@nN z{asWg4<&L72ruKKAwzbP@TbV?0Ery?OI0O$phTAbEiyERL>k{0NKT0yf1u)~@i_nk zF+C88<0g{R2jXN7tly<$K;@Bs=?`^B1d>Mo^zU`L{n%&E{-Zq6e=r6h*9b3gIkmY! zG})aoG$jo;`2L{dA>q9p;NDln0>Vpp(1uaSr6K}BOGP2y6cxx|8BV3*BAi5td{x5f2)30jNg^9cs#2r+QY3ee z9*k0y>7|^iFLhPd_v%_{f7#~gT)$>?em;?oDgUnNc#QljC-M*d0)-qZ?^H_z&;?M) z@(NDXf>!)XgMonWfkG(kVLYoI@RO{bxAm!zfopb z;?z=PWL|YA55XH<5=P3^5Hg@H2_rRX3M0tdqKzhh1}zQsdk0l~EvMQReO=d*?P6;* z03W$-->XnRw(#18*bkGRea`;ltKT%*jEiM#Ni}Zjct|z=uCK(R<>NKyD$Rm-Vnd-U zGaz>MC9;w7#W*gDk=l)&Y6_edP%z?nN@OA#6-H(Q@h~ckJo&Uh$fz*#oSZ&L?E<)f|1V!LY;e@+Lw@K?TTck!A(^;&_XlPGBHZy%N5>CRL<1!W%us^ z;T{(?d>MJJxj?Al%g8x_s4+w9ZX?_;U4C7Dl=~D-cQxBR3>Mjd(`hZtL_M#A77(Ie}0ko{@;> z1wuVrM)m^XxKYoRk-_Z*LOokXa<>-lE&O9feK*MaLn% zcEPs4Wi9Pv?tOjMe>0kmuL*y(T*jdv4nTM)tI|6wap2lzI!2$d23;z&D zJ{m1aM!IxWW?FT$DRS=QjI?1w?fwF1KD#>nQ`gE`i$cv&K0D2x-+ns2!fX9+QnStw+|JLzPnwxi57DdaMo-iEUA_jB!5IIUCo{Y=@Vz(1;$X#YqB*Mmc zATw0!Df|sdjKV$j6gzMVroCXYM?C!Ng>htxs_PSa3B7PQ=~x=Gq36-u`^UOr`mP5$ z>6Fw3!f!1{%0Q$h(20knG^&rt{bR^|MoRQmI%5n9Gja%sEh3}u!AO^WUK+#5B_KSc z$(Lr5;JgI!T7T6_(sMegfILD3bTDL5@Ai=LQP-Sw?Co~xA38vIjfaw6Wq?RJ=>Q|A zfN%myD2%L#5<)48N`jFnoTq2o6|W+Z7L_h1?eBn-i$su9PYBYA`AY^mHRMhYc2b|I zc#LpG#WdK7htd%j>m_tX?g3$;^Tst2k$r>_T|uLiaEsfiHm>PL%zXB7`ncAeM*J>H zw-i686A#6&ewUH-6MxN=P2$j>+)WjhXQxel90h{7ZiEPa8#6uYz`J$49rgb;2 z6BBUYD5n~LqqT1A@CFcjMpfe>7`RXHd*0Tvm&FiFL8n&Xk=9&pTqeuzGg9LnhF;i7 zC;c83A!xzTQJJyk-s8efFi=wKja6Bz1yMr*N9sBNTKIY3_Wlk{!{}^640My>?c=;e z!N}tAN)$TP5{yJn5C~ZZMxK}`tOJh`QHe;)7%Ys#eem%yFvXo(J6mpE#=)!_)k|BK zyv>1>uAg&aI0AY}Cmmf^>?o3C$(u>iViO!J6WV_T*~#nqRIMPp(qa1y^uX46fCQiorB22X+|@ z!H72f)AA3a{~yj&xb5 zbVQGk$P(61fA!UV*AtkjSoODmV3t5?Qib!~nx)DxB;UDhqWCjwvK=rN}Qn?nHIeYYU^1 zyh_Npn)5$&@!?Xh?xdq=7D#v0#jozfL%H_$YSoP~y7-K=U84+{F?r3%S&2{=pOF!3 zg&XSPGg5DzNI%WfF>+TT)Wv6H{d(bsy7-KA+aSWBENRqvj` zV*}P}Iq7nNt}mTJvN`a&sGt>P2c@`0NPrGM=H_k)DT{8w#B2A`RS&)C5uqfloLUjzPNUsL z@X2r=U-dRd&v=ONQ_E?debdGXkn%kFsE{-D1R1IOji|S&C&38Bz-3kj7=*yj*}`)hB06_CxO@&PzxfFL?^(sGCu2+u!DRXq8(-2yB8yS z2k(6ERJS2^aB5B#M@8Rj5xqRoI~i8(Tj>QQypt0TCH&eCB6*arjJ)`xLR8<+_CL*? znu05jm9CaOE&6_)sq$0(6i*{%XQAh}pFW^>SbA5ZzUwAKqQrD{;-SPWIHRJhQ(_pY zdR8G=XJM5%yUt^_FTjTRdgGrKW?L#Bwyoy`TM%nId$abu$lst;47(Ynf$W-5z0SFA~%8X`cIs#tK2NSs?48GtuFSh>osMe zH7*dCk)$07kx412{DrCoUKa(T4|?{xZ#nRCtM@gA4{A!6GzQk!iHFkD`Id-vQ8Zc@ znRwf&_GK(atQjeFM<8!XWSc~mNTlOk;ii}jC-7G#9gSO_vJ?ShF| zPt9&q9tgKITFb~^K)6##r#Uh5+C$Y=(0Cime->2-tPywu@uh!yloR(t%55yFM)A2_ z=aF9PF~;!QMCmb!CdP?}MAIXOOO*%`4I^J@F7E2<10V!O+`-C?>bYYm!MJBr6b4;) zsnuDrPC9<>f3_{h&$NmPMjvRH+}bh_O4~pu9!gv9P#I5ln3R%?<#Ndhn4)9WJ-Jm( zwNPe_N=i=@Tm|yGILEax<}%Lp5Nu}(xRj;N!)$48x~!DeL~^jz3b}Z2P0P)kRvjQ1 z&lYxZ>r=}eoq`kglOkj2DqnLyD*HILm|$cZjNKY3nQ1X@Kkc}_#a(J?PZAYR@8W3d zo!P9X7QD}7u&@7micuzCmA>OPP`t)NnRBY7%VD2Epao~9C0OG_%lY&7_`K}S_f&4FtHEwN{j3Y!o?G5#$Z3=L(00;cq_}wtHP1P8pX;9S!MjA`ijOj zGL8DGy>v|VRi+aUiK4}mE}o**slH<5IuMWgijnyhl=zJLijmG0UA)vt)mH;?s03}{ z_CDq_tddJL;If=r7rTgBCDngJiPsVR2ZB_|PeafvGJ3Yr-FsR_r8UHm?ZiU@now1V z0mt#;yi{mERu<67p3Ky{nvfzjy%@<+U1^Ka^kQU%L};dnk;XNI8=BN%q;5@x;2gpj zm=VU>))JUgty&T+C2FgT({j-a0R}GEgI|F1q(%sDdBh!Gf@ysnl~OG?wnIju4H6Zd zfYFKs58p1=6~=&9kXgq9L|P{r8FCax`#?RHT0!=bQ+v_Y2+x-C|JJX^sEy}V89xik z{6}9O?WC)q9Q8%ysWKSt#6vnX|0$tExw6r4LB=uK`)MKfT*JK3g3m~FxEK1h2bvw3 z|#72F;d+Z$xI7c3JoMR^~W@(m15GV*~-qxwsvu|Rnv|0Zp^7N=BV37A(I}2?tOz1~&rBBzzp<@LEzW+;skIipLyyr>(pu|7zOdQY9p&WT5P&r5hVB9l-&?0m;zNe7#+2^md+8>u#Gut8(;M z7-i(V|0NQn52QT)zx|8>`-zl3-&iTpT0{v|p@-d{?*tPm%K82xr8zR`PAYH?l-OH}1T z4Ra-8dI#$7+m?GFNf@$KPHlj#uK%E}Hm#TW_tEUO5}T^*XIRWTZu&b;I@Nc)j2TtS z?>O<0s-~og%nHJd?AX_Y?l7tEp;g~{aJTpV#IxWU$q*Wd_m6aU8YeSV1=|910F_M|B>R#iJ8AhHTrfNRp0wP9A3>OFu%P?|F zB2iZco3ZzOKop?x<222#H1j~R!;Apl*a1@**IKrvfVoa;} z@SO#pUDx5HJ!;-yUd4y)-N{0HdQub?GkOJ>K1BrRjE{=*jZ?F!N{evle-s^9=Naq3 zX~L7dD%NU235y{36)}vFha>KXGvBMq?igo?u^$y*Q_8DGcZSkt1JA35kAg8T8GZcI zcR1Ch(SCFKKfd%c)}sQ|cRHid5xy^jq|D#x#6y{1e3lTBW;lcyVfbsnsz{oEWp%DT`)-P9Xw4Cv=bge0a*(-zr&Y9&2Hd(1aowf$DvudkUQ(C93 zfs7P+TOhPGkdd74C`1c0kDpR1!E7tQW-E@4nQ`So&(#9KEVn{})(ABUNr+2MLF;c| zVifH{V2_8cRZ@ikqf<*r^nxSbI*~b=k*%nO*n{JM?Xs!UT3AL7uUBP4r?s$*jM<=U zj~e76uhTMOlDt=8bbVJ0avgT+g@Sx1WxU+#M~s2 z0pV?8v=D=l?eD9MSIcwhz@kW6J(3(F_p1!s?o!KhzjkU10<2{is!Up)QIAe4cTxR= zs>E@ZRlYK5t1tUVzz6rU4A?VO`Zq=aUM1611R45`6Ay`V@h;Uf)p50kLh9`nNVSw=Z|VA;Ks2Xu(IPcqFfhvj%=tn|O$(-S zM(aieL-s)xH>}bC!@z`WYdU~^DgUKN8jTS!avlh;P^RGyMm8T((bmE<+)1g}$&z6l zTa|#NQ_Q#UE79Hy9*DD-)1wB;B;+|FVyGeOj6GKDej8xhf+=exOMsm99{;tlMn5^V zcYO=CU0eDu!!~Mv`SvAOzWHmj|F6acCgsRmd}xgaXYsz4 zkOGbNpLOCPQ&9P&(saWVFtQs+FgWO+PNsm7o~MKxGAxYr{a)#S{v3(~BZYrZzCk<8 znGw6_3cl^&xXx!qvdNmUn~OkrFM)k{2j6tcY*WvPx}OXNBc;wO=@=u#jBJqzRv;-i{VoVu zlbK*Q_XMKp)cmz}Ei=d5iz+Evh|xgyjc&b5!U)jz9Clv%vZ!(SE<-)T-I-cfb8D?*U6ct!@#Be#@9(A0UIER`)F@9xAC7?utBfDVOMZ zG0$=E@KuF^2i-5`neelJ9`wPOr`|7uhbo%XR2l?>)S2a1u-G#KMqOmGK=916^G;@R!klk4K=^{V7%l>Fz*hOF}m!} z$a=;>|HGI*$orRw0kxd|aN?ot3BNCjFqun6wgTan6B$KDvK|OGw4#WS^oMG&$r!p~ zBmuM6d^#)*T`>|FAP^e5Vk9VsLNsSoDvmIUiixKYI%a91g^28A7AOw0Ow#?bKyR4k z%Mit)llC&QH7taMpymT;rO~4@`>i}7YChneQ|tJDAhXS?+RAdD#o&Hoqdzbv0=|)P zp=^KP#6#I$tU!ooEy>6yKs>UYkue2@8_IS@UMi$A%E)#`G7AfYvYnB^MFc|G&Pcvu z0-;q|jC3q1^64*$%z8o~e@o=MvI3#CS?pU}xe#uT8@bL%*C&+>)PDFR9A}EDFuK&s zorYmjQNpKI2vG}U9y+y9Gt>5M?c$ z>=nAp%+j)oO0-to9@}weqyK1h35H>M#W){E8L7K)QXIb1KRu_5_Ia1}-p%3913i}! z@$yxbbIqBRfrG}35FEhqP`qQRt4QfsudI+2H9~lCi|X@6#imDNh%7zdgXMC`3jrJbCB4VS3v~AI>V`NlpES-Go z00$mQd7ru}ea4^?BfkLQaR6HJ%gBU!0wMFuNYVPD98!ahkv%}TK^KB?YlsgE&y3pu zm}zJO6&YhQfIp_^8Y(7Z=$DRVdRwX89Re4vu>(r2^W|QYt>Q3RmZWVcx@qtI)$iF zQmRoH`2vVN!ebmk!^pVKA-p!z*i**HC*4Jvv*?xYl~L&>6JC6tZ+qle0Wy_AbC zlkp=Gqi;@2FiUvbZx3JfCtP&mNV%TE&x^1#Pq^@q1djC*G0TBz1c5pFC~csAC_8G= zR~0+`xb&`mKVdld^yFA~bY`4)Ixm7XKVlGA3x9aMz_QxcPc*7spakC6ruV3)%DCu= zp2w^gCRHI(6!#W|3|B8_s72oXW~heG)Cw%;!b6hyeSm5Y7<09Zq(_Oi3N4{$9SMr(`5AH zr(VHDhcIMHA87?@1s5I?LfAl2ASh=U*#yKMFQo)AFf&dhi1&-hz)@d|*jgq2=gFP42L@?I0@Y<_4GegwEdUY_Ys z8F~4!^oq*MQ!YG|(v*=ZFSRh^Yz-?Sbg~AsHGWZ5jK-;MG{n#7A3$v@p&DeViBXu) z%ETcZDora!i3V8{7Y^0(%}-V5`?SA=mwGcJPY+8EDW{sb@KDOKU-rr=MnXr6oXSZt z6wV$1v`1UDTm)ith@D;^BT~w}FYD~ygyexKX-TwvLkxI- zLY5%|Q|Pw1M0au=ZRcm-qNfPoLahzw#*!?_RcflrFwKJttKZqL?*y08ePQIYX(Dez zXirLFrjZvikdd#5s7NLmM!i=BQ$Yw2&GmtXy+F?T%HRRm?UR%=m$fF5sxA@j8?Slv z>{HPGkMv^sYPzrvK@cLAYrueV`Z8Y^jkdgAu`)KuFzX*PLwIeD+VXE{0*qq@jICS) zeSDUvox8ZSqL!&K3#ZgkKl}H6yw$rIMKfr&@RYQxn+p$V*Mm7izCm=Ur;$>|SI-qG z)rY5~B(*cU8_Y3jo@%yfPN-dGx;M+9H-tD#*fpiK4G1GW{>tk3`5_K8LXCfVPnXu% zv(Y65;XP{WZO1BV<$P)-a|@DZ*m`dlEp7ThhD^fh?ZQLCDz{h&D=Z_0&H$i=zh>W` z*}A_eEOaQYy~BDfU#^KuL>bE)m4&&esA!DA_+dTrme3(5I(@Wx-c2jgIn3;(Ld342 zXvbi6uoq8}Wm553{L-82VBu;p)Mha*xD$cRTdtz6r=gL`(de;4bWr(1HcKs$GGofu zY>A1gNLv}AuJ4R?Y2`ih+QU4n%&n;T+{N~Yfb>`w9Siof42Ci`)`f>M_P4iX#wK6^ zp&Eb`Y%AUo8Jh=ZJEf$V>wjsf4OPDpAR;p@Q82u)LrF@FK3gm3{oB-_4@LVYRkY;oT@+>?pERMO z-T$}u5u6F#)obF7Uw^~2viG?O2e=iR?Jh0G0x^qbAgX?e%42- zqon1|z@bSg0|)wJT=KDK=im}mW8XxkvA2Rf`*N4c21AV)nX_AEuj>9M;a1sCU{Olv~6M&v=42TSp-jl{>yYP@iQue5*>a?ngkuIO9ma(y_ zijnGjRm)4K`*j!z|6FOj7DBg?- zk16@+*sh?0Id02>GI@+aQ^m7=!hf95o(V>1(x})Te zap9rl$DQ;_J|m&0ypqqzM?h@#(8SHXW(|y{SCVI&kw-}qzYkG2_l|YpmKMuCJiZ5M zml*royR_J4#{RD8?>^v1MNS{@ibhqoQbbMD2c{W!<5005@4`cpD)W=5lY(#zk-2b? z@sEJpQ(i_-kCAuI2z&E9q|ZqAv&xj{?Ifa|Q-~If8 zcg%UEQ~I;0pBd?SL8Zbte3cRXqKYLAq%-gd0DFjm22~jte@OxQ5KN;oQuT_kquiOX z+h~S{_%v{Tgd6V6Org%qf2|yTIx~L5)~C6mA;WxEMaUD73)5V9D9`s?7t*2)JB;+Z z;g#Erw7#k2s8en;at8>vnkcs!dGnS)u$@OCF}GDV>ysr?=#G#+XCct`Qj zgnA0FpGEDtdB~`6;;M>Bifec{{xBo8II?RxDt8FRlZ|?;8Y~b<@ zMW1D~Jg&(w8lvSf%Y}#1v*<6S0h)_W_2Z!y=IQyjYGQ#0hx+;Qq~8-fdC(t?v6&*{ zqtfF=h^z0b4wIHYk=EB4GjrxfU@zuN4^)Mt>e$SvteB|e$YdJB@F{^Wpt|FQ7jL+< zC+$IOPxI_;ek=Oc#QuWO7Z^41WElv}Z7p!&A%V8b8LHIQnVD*|e=#sESn}lxRbB65 z*3cD+47wd-CnyGq6K;;dO)+>+|LAZ|Ojbjv9O_;zl$QzUYtaf~WKK{h+dVX`GI6T1 zr_VKlLzM~U4T&=C)Wr}Ad&(KA7UwK6#%ok>0%y{5-_b67W{qaoYx0+$r98d?>r0Kn znoySrmPEePg@;5wGhB&WUkK~MNblT2(xJ2iItKfKQOgcd(0g@ZVMS?=i5bYr{X8Ht7Y!Ueo=#*$w{LZ-#C7Dwbj!BeKK z@Fm1NJHj3_;h=thPDRH!rGb%#?L*b1HQ$eu5{p&#o;QcNJB0FNn*Om%8)oO9XU@o9 zl&A9dKlsH?Jd1*76UFB$9Ti=Dw~J1|dQC=_vU|4+4`p{&HziVIr4u907eaZ}lCj2{ zkvS5fl}?P5?k?QWfHfn}^$zB(AqA$2wi^$VlEk$|`7d0t9BhQq%!g%y+O~D6gN<^4TkG{qt@g5Xx&zwP0hQ z!)QaXXB(qLpkXn%5i>T@58F3bbId!mw@Qh2atniANg_Q4DmPkHdyW$WDRgNStun+} z$gp7c!Q+ubqj0$h8pU$%w^m%JqpF=NdtKUa5B2s?OGBmqPrfnjovrZ|wYuITkpCzt z`aTz(GBZ>rgj9c@3lFLO=tQL|S}r;l1G6WLE=v-Iz(BEPhtb{1-YB-0FnT&gqIBqp z^!a|OH!6KDmgbF0pBtu26g&Doe2&TRMy1cMWO}30=WSU64I*h^TwbJU$Iwt7chiC> zO`iCt*$UTBqj<42{vM_ftUssYX0U0B^i44RG+bF^t3TMYdKVdBVekfx>+IGT)hqP_!OG?{x?5)1K1kb+|b zf(_FO=`dCyS}tqZIES@zoI-VMELQI3j8}P~e*U<^I^4YO__DBdVNm+RRJ`5n!P`)`g*%Gv8(K*}H4CeCe4n zG2j`PiM>OhXW9eE0ma3)Z8) zNjvPi)b2?6EJE@dXZ^a-c#IM;#;zMompg#qA^m8)RH!{2u*=BzKVr7D>D9UjNPL z|2LJMQziVH3lC{)rOm>c1)Gr~K`_HZFa#Th*WsX%RtCy%6?#sy?2Mcgh{gkZDQTFx z#L%TX#$0XcGYhb5n;6*p!=;t8C1CXsl_juVkVGo_4sSjxApI|69^eld49Vgz7ao#D zxgA0lT3S?W0&O~FIORj75=O_6k-(2cSB|#8Ff!v~fl$Ygk?Fex@{>e{>=wGi?G961 z#y$(u3o&kT_Y=|XxaZQVx_s}B@^P)-H%3Csd@9^lN9*Ul3l9n7yFDu3b)538kUu|D z8LuXI(vwgJM%u^Pdd)vn`&>-$JaB2Pymy2@%2a#5R~0)=5Be;`@D~Z)5kdzdMvEwD z#q4#Qk*H}=)mjrd)>OA61a3$M8^2IxQVaEPgD$nrb@8C;cG7xm<7QQyd=pLE#h7dT zmx9X`GmHkotfiaGGxw0RNkgsc+!!ACl~O>h2nM3C1A$KPwf8bw2NjDzryW+=s}(lb zsWtFu2Ol2^Rofp6p-W6FpdZ73>uWJuN!vO(vQv&Ki>|rMTUxD^+{|<38z56h-=sg~y_O ze=8&eT%F0zs&mE#JX)z}oxfb)8yLpt)dfpJ)owr8%OXfRo2p*Drn+wu>)An4tM1g;lButy&b=XwbsqcbOQW@jRp?2A z^ZLzD-pfVH3XGmgBu+~ZJkQ=1LFJ}dS@VE35;ip-IZk))s2LP3HxFK9CMRQI z{jAvZ5+QnVmsZ%jOk!)1;YcrONaPFQM8o96FuHrozBD%kOeB&ze~E?}P5P9yk@A0w z;z?@{87Xy7#RaF?S{~bbbeQc9*m(GnuEu1<^-vW+b)8X4vUx-|goSeA?}G7<;Et~| zdLl%dhl9?1XXmY@5Kt)Uy3nux=G!oZo_!ztm%nd$#u*t*AN_q~>hv-pG|c|HOdFNf zG9h>Oup|&vpX_~p{LcqrWb7|FS(mRt*9uXXQbm4))VeI)399^7(BgEb>VQzBg zcoYi>Q{5=uRN)=is?acpJ->}Q-rAtz9bmn1!KE8R8D61%m0L#1Kc}0{$ z3?_8C&Hf8BeV9)$xon@X(nkoOL4h!yuh&c-c;v~mp`hT=2V#wmwKIi7x=={PnFe?m z*jpq_ty9rsQZvz@L6bpnG%BW?;uwB|BPkm9k;AC4H}gw~l<0AOyeU{pdSi0^lU^@GD`c1B z*py6c9Jy4isY0+>uMeQV#LhjM=sB(d0@VA!?Hk{Soq%)TEkp8X6wlS2advWXQvOr6|L?_ zy4}zC9qAE+$eJEMX^<$Glp`)jP@$@20!CvMEd1!2LF*pcVjE1YNJ^pjozqI*3mw{a zexX%F+YT*T^^7Pj7z_ucBT|w*-j=Rl=t=2{odUH&l`9AIGP2i-tG)l(>t_xRNqT`5 z=vB_X&R?ykmIV@D|}uhu06U8D2TO zTzIMQBH{VML&Jl@1H%3`0-^GdaCQNr0A5yZfR~e znek^L+q*NOVqwZ7TQus6>M{nc7@lLJ5(Qj7k+HWq?Y0sp@w(vEM8X_&| z!r4SOUbRdxrpC~k=t0LmrL~1c$2kRvKWz+8YwN*+AI%ez!P^C=NV(IxnkxW_$9!#h zVIIhcn>y3H5X*swpBYRyoOgHRHNq-dR379pO2d@=vyz7Ql zYCeg0!PrmPHkQ)a9#__zQEaPHX#+kk2_P^1x{#6-p23O94#M=%@WIS>k6eE)Jtdi{ z#TF^aSY98KLBDMVciN+ouGYD66gzU`H+BU0q(^a^P-}#W-3f>Q_RiyqLz-l5>5jqb zV|OfNNvlL-KaihSEpW&;TAkqU;5OQxb|O>)x|(<=+EMC;W?G(k|5iT96#IB1qGMx5 zbgfX@q@`r03LfEWLKH5{!#b0g^k%84i3u@=Gl7d7XqJIi9Zv3a+o|b*sHbDKgqsl= zNspK9VG-PE{Hhfe=y<(q+lnp+NKc>+1p@6DP3`vQlT(H!Q^b`^lgrc%lc}w70g83mvqGUHI~yEviSoWmWQUl$i$Whn0wJlZ~wd5^I$m85A)57R3IX-2j^7TZ8I(lc7R6Wx?{%0H1MR;oQpipLL2 zyZyhj%ZdkTX|BI_hBkK+b@D^}dlrjR=msA;bSWFHXPVq@j89j*FNN=h_zb|hSeiyA zdJ1@mCZ4&V>9lWZbg#jmk`}#Ry#E1o5$k;#{G|2pE8iKZEa#Qfo$?SGKKgWAJja|WyNk}6s@}mqsP4Ni; ze-V6B99j!Mv+3%*6f0jtgBJfAx9l7rZ9_sKC z&mw#%ubbkt6Fjszop`+qiPp7={cCL~Xi;a2f}m*77N+UB_`Xv$~WFi-wA!>2huE%0fD zPaAxi-~-(WbWI!uDq{@tD&VIv$fbb&W8gMm-xx?JVDA_N8?a~e2>ktYbSnPt9vzFn zyGHlK-;YPP$KRc!;cvi>(U5+?_R*E`_x;gGalqEm(8qu+qsfO&8ThktApX4D3x76r zz@K%9R>0c&_*1`X_{WZ1(BObF74awElZerS^7!*dS^W96H2&Oq0)MVW;Ll~UIA^Ii zpC;Y^p&0&rPg;?SL_UOUL3cyQqNs7)DFo^};PP!<=b{3YArC=!T2g%L?d zIzD{9z<|p^ySwassSM(SwTKSK$8fL`>l4WT)_8FknM7W`19}f=@|ox|v&=F^iu42C zQ$Eo9EubkLL@%ml>f3twnN{5^^Ef8OQ5`h-NpwE&ke};7UxlzKsvAL9+icRGA=4xY{yof~vz_(^ggKQAsZ=^~)dEj4K@&v!&FGwI@>d%tDUB|sOn zcuIm!wA?-gI^Rr_2iF}s?pSWSfG(M3zV8Wo&IFSl1NyoZpRu63A}tgjN>}0KCcO&u zUzR*qgRWqOwFYzn%b)$Ai;g$>4}iX7g>?*ctVQGA1;;fMNAmv!=!{oQ`ZVY^Gfes? z&`)NV^cm1e&^O{g3%b@ElRgK!fEDNSpf^}?Ci#!E;&2o6JWIB>K=-m_^#^ENWNr9) z5A>o}Oxu?V`o}3Iy&d$o&?VC60+e?sWn_ci!TX5Prao6d{w{jmw5>0}h*KxK#G(0sP3w*jDk1V8C;An0W4y%Th?Wb?fX^m@pI zctSx>ebJ=DKsRukbTQD^Vokaf=snX+Is)`hkRiFP1Uh1^N#ojQ$5+T-djB-&YHyfy zJJ8P|zvz7r&`%+aL`Q;N50goBH0T2JO*$5IOIR6t?*@H)vPma`t~$x2lR%f7Xwp>H z&RB6v0o@RJL2fB8W>`E!Kv$k>zQ>Wsj$bUEbkKXCd&Hjs`bAW#L}$|bc_uv)^hzuK zqd{MP+kF2X=$`MG^hVIT)|>Pu(8Hkvk~9Sr&$ z>==cc2lQ7-CQZ7!euGID2EED3N8G6D=m9%`FGq2NmGd=|9uK-nH&dS{g(58?A4`G` z0YBww)vl(!4b#vTfezr61DEYM(k)%;3i>2$DaB_H=pfiVqDO#E9b(cif$sXQNpA)H z18Azjh@Ov#QQW9}VJ5+#OX5W_7200^Me&NmKn*DaE7{KsSKS6A$TFAat8(D&rer zyNI3zx;V-g(Q`q!*3oQD3uH9$kS@Ik9iTL3gJ-LtcL;iypg$9I{5Ufo zsqSt!!KC+tZZY1Z4}jJ!o-3etSnqFw-fg|7x+wzTQy!5#*Ptv1fTlLgHN+oZjxG3e z7c}t@eG_>^G_@<*qWmJe9aMhbd*0L&WQk)hnvD7Joga*+pEC25boi-olb>`W=xLLt z_m%LT@}1tt_c8mE^!^+?FJQf|*xS@|dVdgfS-dB@3ixe0zAx-G-s1=&#~*N8#B%!~ zbngj^|4GoLEP6TIQrRK?&q0^7=>Sag2)Y4c3L`;ylCnRt(68g3`R&tjk{KK1dw zruF_eyf0+E&yxrC1vI5`AtDJiaD;j0BD3JAMHji+rbW=iyI&i-+8iNzP*;O#LK#)vUBhQ@f}dG7+M5)CRo_aU(hp__HlKFX(8bm)=u) z>sjxy-NW$!>7w_WL2u|`(%V26L?40PZwDP^z25B;o^MbLSMHdA9l0_E+oxap`OLf*Hk6rx4yzSY#)&mzeZZh{KG*Cfx`0F^ld8dh46!d#V>Si+?rfIu=d+mn~h)a?wyn z-TH=EcBs8{0yMrHL|=_Ebs!7;3#Xg(7oeNWH)Tj|B*!ZzP3>66G?Tsyx;}Wwo)FK| zg8zZVL;Me>D*jJ8nfZv_H;&gWJ*4(kUn^W{d-sL>Nk2*cf5IQ4$)A~ck1yl>_iId= z@@3XjX1d-2V|^=))V424Mg`4h`eUybDC&HxUgV13aM}pUL9S7bT%&TF3wV(@{{8p= zOakMgCyvm@RBtdL%V#RJYbrK@8Y`KwAq~^1FQntbs=jR!Qqtm5(j(fq)B3h_rw`6Z zNyYrBu@A5lwiRM(07qwGmNe}VZ!v$;E+IO-Z`XvR)I@iyY}^%>==S_oEhaq`3!+x* z#}8%{{I>P(!*zD8s!=}Q#K_YNC&yqiHK4XXU;tzmlk?R2=?BIg+ejsd%3T*9rJeH+)D35BU{?H%Z`3#wX6;BL5|tZupvE zxK0KS{Z24^P6Vghk!^)TzaIS$mcjT(MT^W2{Ue$_WJ2j(nDrZ9#(Qcq5l&4x`Yw)- z6Ce6VW~DqnWUlES{jQ6T9S;3QE5Ue=FXOv4zNtvkKf>t)>(2g@37~gmYC`a#IJxk# z`6!+g4{}5Ah#p&L;&5$DnFeDMeYGqlGcCsb|0(?%;Gvu8hN8MnMQxdoP6yp#WVq%uC_hpk3-meMzUY!&z=c}(7*F$oPu zU+m(WH~$YU048V$LsIE|aYIC%WOqijTGeV)YtR?xi1)>>I(4hkAq)%}Yb`$6Q?2$F z0e>${SpQW2$jVtwon7-DFwBELU<6tuQI2S%&?cf#XP_WbQBT5mED-uV5XC*sDCks> z$rwZdOF^+G-YA#}G7-s!VR<~33U1T1kW162M1&TF@X1FqCJBZ)p^(x*M_X}D$6(;ZL+Q0~l1B`9ZC7MW$snil8%%a!oF% z(j+akD^Aa<(u{#AB}r4&sq*b{NIdu`{br?|h3{m9Mv|eb)SpX=oo~*WoR50P=#-2^Jf1;V>BH6HriAXo;9yR<-zaD2_P3vpsgKxQhJnE}&v4{cL zDYBn2&ZywK76H5G4hNv`ANHMVTqzP2M zNe)yN)ok9(ST;hZSd*oZp;O5qn`D<=6MMY9jx$n7 zRwNN|ARA(r)<+}$>`**HrQ9S7NHr_fR^FD~_l>E2W?f8e9g?mu7sbn01C@@EFO;{` zCb8>5e z&tQC-!%vDM{5AZia40+qm%^ubP<$v}6hDe5#h2nu@uzf9dMI6#K1wI0w=~kfu-dDg z)(q}jtN4@gk#p)aSk>@AkqxWseB1u}lGQscdu#CR*HiKp-hcAO$8jI82(J36Hly)@ zX8j5tzHmTm-=KQ2p}od_-RZl2AGAIn@XEUlLb7)}HzPQ6)ToZpo!0!gcTwZgQ6Khi z_w(EHpU>P?cw&y!9^+P@d-|_WcV~@mowQ?n{`l)ROE+r0C30`0fW#kWyuIvP=4-Q? zPZ}AT-Dda;U-ju!d*Z?=r;58zC&t|kx|;L7i(l0)HDGSz<*zKgUt#L%q_ekfo{gya z#i{WTmueP0`SqXmZ$22+sb%FcljqiMn*Z|bd-2VGD!6TP+W2u_z1nfj$ZxcVQ#%zX z)@gCrx?h66Epuksv+r(sd(7#wr#6>=vqa5hQ)YKK-M>YA$?TsGr8n8Rs{ZiX$LGED zp!^q|r#EXnr~8p%KPN93GpPE^3Y9OqdTe+nBK~HF-rch{4lWoxfAi4KhyC>6oo(8R zu|G7M^JieKx(&j5)mzZ3&3BjU@y525zdb)GV*SV|f9>x2^z_^H=g6j`Qz`5S@_!dLHUBurKLM&^6j}7W3&;6r9!mI1woYZa8+S~_b_gpop!?l@{4+agoUw`w|k5?;9|q1kSFu#c#zrHf#vX4`Y0-$fTQ@cdD79*1s=L)Zb?o_~E11F28@K(xloQN?hJ{xz>pu%_^Q)^k$C@d21B@h%s)vw1CXw@S2dhf##<@TL9U90%<;Fh_^1?Sz;q5Y+# z{nL)zD>^p!{7E%;?+$J9b=NW*zW(jf{pgAde|%$FkB}kzQX@8I?mhI}{TsvQH~q2n zv#ASu4cz(r#c6Zbl`VF3fj0TW-reh$xw~Td>TiSRzxQeXMXfuOD>Ws5?7mw|N`fKNsjc@jk&n2y?0`6rzLX_ufKWgVChe;K(zq!NDcRRT4{JneMoZtJ(lt5P# zreMYEAC9WKh3B=g+S= zc;)hq{=s8j4Hdq$oqxFK&BhmE`dzMn@L}6o3$`Y1 zueGF8hkC>F?kUq@W}bqT`{&)0GGyQB)P4;ol_^>K%Hg>=U!MBc@D=6fFAIP2ZjQXS zv)X@DW6|8M1=f{rd*+(C(-`d1{^f>By7s z?fP^`=InZ-qIZoPA9=1%tF;@~&2HH;F0gR<)S-7COzZ!P7Wd7)+hw+l|Fm$6%sPWF zee@>m|J?HXL)tXW zb??cEFdv5`1_6DYgJmbKC?~Ra7X=lpN&cSb??Jp@2ED&!=WylQ`^6KzTfe++VMrI}%08vOS$g`# zACEO#+V}fwlRoZN=TKnmvOab0Csk-#{`-phgy&x$HMK~M;>F%bSy`gbsAs+^db`Ze z=bDsQSztxJr^YoIy7R9&)dM$9Y_hj}vqqD4rjJkT9`x$f1Md9|E`0RFs1aj}ew{V3 zt1EZTRy+3`%d`FTwfuR$oAUc-BN{#P>9DPRYZU$?@1-S6N1Z-9=*sD?*K?QpvbF1t z%mY_m$ryI1#)H>ySNu7l<;CjXM0KunW>}fFn-+}eccb$7!mpOg z7juu?bn){R~ z8-4xUyU$E0UnZ=;!22D>M|V2&T}sR8FRrXoWVeb+%-v8*ueq}l?9g+IulIl}Crj^=Npy|a6IiH`JvT(|+#oy)bn`cz5kd425 z^7gU8dV|}~AIv@d*2Ah}^0nFf+m9{Q)t}OA*v!7cK_AV?NY;wD7Q42N4cWPPK*D^qfBOCP{Zm`MKDYI)tw)ph zeYm1Uu3!H+*Xu}?Htn9++;i{E^Upn(r`dwTCFac;KX!7bhE2;F>QRVkqPcZCc5`T6#RFJ4|8IIHr@@0NWvexPe? z?P06FEPZWQ{GZj2PuPEbXW92EjLq@#$fJQ9YnE_4m((tA+sjS#z?E0e+#EIO!worN zR((;e(E2HB`~MibKwlo6(70iI?}L5kYe~m1)|(vP>Ce1zf4A$J|DJ2Yyg&DRe>rU3 z(Za8F{-JuB-u!0gho$fA7*TZMlMlOopB;VE>5LutbjP+6b5zRFsNe5bqbd)bl{;tu z6@_lMsG4ia{kn0v^vZ|-*#FC_(qU7(T&>oie$B7uXP1BRLdxF0dHVLsyg6|7nNdeK zzWhh!!N)IY1#?~q|Fm`CpJwkXADVyBvVmPvMt+`meA_}dTrcspK606$sQ?EyX}85_a1PT7FGIxi;^S_JGPeWw zcF#;B@Y3Nm@f;pnAD6R_pzfYa2_tx$1 zY1v)(|M~Hu@B6&xJymt8>eQ)Ir|Ny@oKL*A`>ID%Y2{T9>~+(=mwozcueknz zi?2H9bvqrkVeS53SycP(Z}0V?i5DNa_pvpX^t|W$^}nybd*wM#oH4!gCA%&-diB-s zzHFP9ymac3&hM@I<+255z5cn!cYE#P`kT+c_MjWS^s4QO+Z=WBRlT2We)@ffe(y8; zEg3y>-O@iSn0WGrukG;nKYjB>?>*$F+uwM@r(bdCHK+dRu)1&Ueqr-DC;jlTpFefU zxj$;y_0i(jw{QE#1rNRB_(M;4-G$H9KK_*tFMI3*w}0XlmmdA?bFRPW$d?pb-~OfS zqC3w#ZPCLo8k_p}Xa4O2-@5BlKOW!zccuFN@yow>>R|8VpT6z9T{pe)$ag(-(~pX) zzk14}=hwY;zZ;LZ;G#>9{Q26d&);^{`KzeErAv*=E;2EF61B{dZ1% z?DicNpLF*XFFNP-4R8GInYaIJzuuOXoAckg`CG|($`{GAWU48XkZ@6>g_^b9hYxJ`p{>r9f z@Az43($N{;%A1 z#&)0l?BP#lnih49t-pR%^2deGetP(4r{43Xqnobz$llr0b{%-8_lXQv`Irg*RZ03($bzUvvg$0#+aINtFw(sYo;~oxdQraV%&p8O`D|NrXG`Koj(G6l{$IuCq*Up^JKEbjX6Dr1k!=&5uVuS&l$dt&O&d4v^SM*9 zjp+z!Yfd_HoeeE90TZW@W1tci*1igB+?8$0?k37?Gis zA?R#zL#CsXj&*%hZ0V9=@#aO=FYgor3)tC7(Tw<2Nj}%y(&>~(_NP7Hr7>&w^<4!- zQm4=kon39=lB{aUG1#z@vbX*jV=v#{RS0*@nOs}I#g+j zbzL35HOaDdN%gYi7>||)RF~8ybvzP5SFyM(id|T?mAULHpHKPTA*DT0Xo2c|v3~brk zuGY2;>bA;QDtp)L#GFq$Z4leDnVp|3Y3)cX^JG~iRI!K$(NK*?J|okTO7+Neb+%K- z#fw)YOP1(&seTI?FLF=`(;n2ntua$*Y|D0aGTl^WE0s#>Xq)9~pQZfN*6_0wQYB-m zZ|JwxqXi|e08F;!>};6ig&@WL!xlw~idsoTkra z=Qu{Un&P5cH|<6DZYC_JZD=?pdRXktW((21Tr-OBZnbZ(aM#xECLGp1je)c(!<39j zj9KSx2YR8a&526>9Z7pzc20Wds`fy4GjFjNZf&*-cQ_ykeUfd%i)ONsOHs(Swlk&V z+nW=5ID>-XjMBPpVk4Waai9p!C7ClYJZGXX}OYura$b$1<_KBdJFz zaWr!^4eHu#wu8cP{P}IpY9&OA`p#gU&$Y_a!2xPigC|Yxg`}PjN3Ou<@w^$_NdE7@ zK4uzPl#;ow&E|C``>sshmZs!ipOXuPy~LktYtA$j+LcFrH~HfTWa69phC)}an3YY| ze6DMuGoNo~IxpbTqmr4%VtsQL6+msgcSfcsr^TGyq9w)2mgHo~buu}e9CB=E?;tDl zK7wSDh&2QwE#D|U%ieMzt<^(0H5PJBoy87BYRczW8k&#{E~RAYwIbWu!dy2~P!`&( zUg$-JDftz<>R(9tu2|Op*T!*y(~f!9@}IoyuOeO3>PAa8EY4^Fltn^yJ!WYk(}pJN>y>C)q1b_Aov1l*>ZACFUnG`=a1JuPW41<3h$J;63q!Mfp3lSLH&&CSHYzd|hG!`rj6o9#WtR79$u-p`+DX5;U&dedx?e zh659D2MZ`bp|hdY8C5w!*q}}VTir3PSsCIQEzGK#yBPQqLPItpP+SpXM$QcJm6?2Y zHCbUOl47@ySIBsTPznxRKBp0~vWB1L`0-B zCQz8wjo_T6L9VV2+?i%syLwhQ#AEQ6P)@A|G^d8ev_@M2OH08)-~7TyOKz*mOpdSs zu|j<^%r*7)j~X#fESYGAG_8%!Xi8%q)0)OLdyENgtkC+}o^sRJ#=nU z&Krcp%?k`Y!iL@s`M9HtIU0XVu_z?#4|PRQDXy7D0+KVR^jc?`>bj+TOXHVskiWg2 z!W1~eQ^j|0$hJ44GM$BPrlXVSW%V{=K#?s!+b1DPS=>5HefE@Gwm@hu-<8h<<<1rB z8(FQkt?@1fN(+2SYab~T4hPF%H**9# zucoS`7&{S)t_<}_n4=k4J}b8H>QCGU5oHjJU>U?J=(@u=7m?5}Ed^OK{lzwOZKr7T$(w2y}ypnc| zXw@}}DMTYZP))e_{lY)aSoox!05iZiTtHVVhEKn1i-IbaFg0`Ex zlXSH)-+D}(ri~Dcd@mR9Dqz?OZRRL;5hj*v(TUT8`yhy}GSzy5-85li+gEAw$+clT z#blN+fidJvoIKx2=-HT4;55Z7Jv28^3hj7Zoh@=SWm}6Kj5fSfzav2|Zfyl2*SWG2 z)8l1vSQ46Jm-xjhk=t~SgDe@%nPMlhHoDnG8kFfS-A?I=58>sw5}jkv%B`3>wD>ZL|R3B z4RdCmW<+meU~x;MxjiN~t&|^wBDd4~p%pZxf-7}DQ=XLKIV35wW#R(o&bX1x98j+h z?X2h7a3LlsiSP%prP`L^Cf7z4Av67JWI^$}10Xqon$x{nsT{N*i95GkZg5Rp0p5Xj z6+aog&t<5kSXBgu{l&| zm0wxmw>i$Fu$uPIX>uaASLw*PO3t8#;Iroqw+h$AZbzV(-E_Ppw<7J#WsBiyaHGl| z(~Kub-~!TtJcoZ4Nal0}MxS$~*A^bmcGTPsoAlIe4+UqCCh;WM5w(WDJ*B<9HM(tT zC-Nj4gXL>R4FWXx(3;sx5=aCFJS7O_v#xY0@f&RKE~sAc|Fov{83a-}%Rmtm-V`n* zRyz=3OKG9(@NA~HIp=fg!)h(~s;+kB8}_twg(er!X0SM`;4EP0B<@Jh#SE+xsEPs$QKV7s^G5=Xhj+1SIe?OfyRzvp{}k zjTXfnmAn2k_V+tj|6do!1-^a2r&e^;KCbr*uFtY@#B!->=hQ+g z-M+0C$Ib%~ooH5a*`Pv0JNxaKd<*;67Iez6ENyGcFp^voHa8R%rfA7^G!?RLvx@D@ zwgO>Aw)NfYo48K%y~%cbrc+9mVZS`vl3mRVO)2eK!U!-vtr&cc9(P1*kuXbO)9l%elE|XM5gX8bX85oU2Vl(UB%rJi!*4ottqvsJ;xl~$g0;G z##uM~5x1@8)*N&gVi&Mw=un8Ihn1siXZ-(6zM~~mpT%Kmz>UZ?sB!ZgpvdL5pQsQ! z(S*iaQxhi)a5%N>LUipS6V2AXA)y0LNNNcU>1c&ObGNoA+|dpuT}3JVQmfFwIJeac z1=>pPo-!x@A$#^JS0n&B*gB(j|VyZ3H}JL%!E^ewof-j4Vum=Oz`hQ}?re1JBB zaZ0qz3;Y@4YTcS;6)TSjT^T?$@YB#|VM1XgldA|+V~MVF^?)4YyZl%e1v8!CTZ zx9n&HzauRo&~bqpa-5BE+YQc;2FX%S!dJx{gKVQ~n{bl~Rxe64>;pf9aD9BX%?YoCP(c|LfuTll9`01GYQLP5|+;-95a)^ z2CJ`}>f=P6C2RF8VXJ3JTRltM>Y4IZ&yu%#mcZ4sB(9z%a?LD}Yi5aDGfU)}St8fW z61irk$c36&GS|$Kxn`EkHM3-{oh5VaESYO($y_^2=Gs{@*Upl;c9zVwvt+KFC3Ed8 znd@fBTsKSRx>+*U&62rpmdtgtWUiYfbKNYN>t@MZH%sOvvt(W}OXelBWL`2$<|VUa zUNTGOC9`B+GE3$qvt(W}OXj7sWL`Q;=B2Y_UOG$WrL$ySI!orIvt(X6OXj7sWL`Q; z=4G>FUN%eSWwT^nHcRGZvt(XYA+xPuViRSQimZ)Pk++d5GB?s3xmPrab6YB^;wTm6 zIZ8!wj#5#Yqf`{;D6`9|Xnx02(fp25(fp25X||0tTk1-~ZCtbEt~A}|@5L?7N-VyW zD;VFm7oC@)`B75{N0xFOoCC>J%#0_muJ)(+;-t<|j0skFMPnPOLTV#bG`Eo|+S^DK z4es4K7jz_|7EOF<&`}G8Wx2~LIS^zb1F(#de znTwulZB9<=$jXMzN~34>tsPr?#L2eG&9_2QfbcC-%Mza=Xwm6UJq8(VE0HJz10}`U(RXny3nJS~Cbsw2zJeoi+PJY(=zb{`^QkQ2 zKlTy>VVZEl#|`FIR^~`4gIa8F>eO+&#LnBHW$@DVwrQ@l9E+0Hj?V5bAJHXtPfM^z zsi<{VhdWB)W}rwJSeMZ~-ozDUdF=3j%Z(~(2Zc@3qL{n|A(j#>2>gXiwfn7czs^9j zW2I)b-470k>z`JYLMlXMO{Rv{K@9Cx6Id&_fQGIzti>YB_cm70B2>sOLPNVdp-tB% z7U`UagWws#0uJZ8Q!+}uT1PErQM-9OWluPZH@a8 zTw3RT=!JZ3jegDZv^;1q7v=e%N5%3}&Vds0j%l=}j&YQkqU^0_w(>A0x3QPgLDV*;`B>!~ zBx`%;yamZTvpsRM(wtA6TF&{z`9^a-S(2>Ystik$?yWv^ZtBb&iwd24rzkwLUWxNb ztpK|VFte-ehHFuKjZArI{Dn{q=Z8X6Mjhd83}b5MsrFN1nx_!5wYSR3Pi%L!k*ws?dF#N~UFpspRJ-3AOk=fN zvm!BJ-rlHSRj|;VdqCybF~dx_7y4Fa-7zt2rhBJAwIJZ-4zhSd<@_a-zK|)(s#9S! z9&4u{wm*ZdRAH;H@>Hv*5|(uq2@|6;1}S$+mmg*8@0ls|pmdIBD;b5xoKKRpNB<#{s{0R_=(<$=xrTY@nis&8W;I{!)B;xEd|YMG=i^EX z49z-s(}z}-62GAAmM*tWI>t?mGp&b7KmSo9Y=TvC_BZyBI-$GB--_IKHK4Eri7Cmf!Pa^M6%XUm(|o@K(%wYJ1;O&o8N zi|!{-1flafy7D?^W5*#I+-g3~7RSrIMIYzmHaXpy0BtTc>U271i&p4NTyR;!Mw0oV zU2V2h>JHnZ%8jBFsc|nGb+bNTw%1{Ac>-1dFLbP6t$>%n9=Mz(w}@~%{@!!Z`k%k5 z@b3|!3f#RN_W7Vb%C}GS87|jfqiO@aiP~7 z+-9p09m*D5PGpXR8hq|-nDe#lt<*AmjZO&2eRm|C(Q2$seNGB}-`E2mBAjJ*a9EzFgqV^!;%WWD4QJ&265nL-^7 zKoxj(-@0*5s*A%p%Q=HRY2kG8+(}k${Rz<{rwCg~$Yb@~+)w=rI}KQ@OhfnFJT7xZ zPVx$m%)_W+T!cBWN%_+^K1eLgGg_2>$kOWUbx@m8Y z@XZOvlY9FrG3+C)oLTSExf_4m&H;BjBNW;GV4nO3OZ>=ir+>pqZEx+<^C6kGZrfivg-Pj*-2Hd}ks>Wdws$f$a7kGt`7q{4y>1^OV zc14-_OZcWrOU=?c-w-O_sXz)SBHK~EQ;dN_IJ_!Qrn%T&`4*`eDE2K9Id-lVF4Hn{ zxkk6;Y$Kw}H@au~<;1tSqr@#kOpIBFL;g|lYgTN{S58gs+TOKI+zT2foXK&gEq&;d zse;f3Qb;7w0&^4QrZ zwl?6dtkO@O*Xd_+N8Sl!8n7%~R?xOvynwa-Fc4}WzNxeBg z6_oFNvNFLA*p=_)xnNnPsrD9CaQvP4QOK>mk%rGTO7o<(KH%5Z)mqPFpUEV_)r3cV z7~LvwmztLXd}^IU)fO}t94Y6l>fE9u$u~zaavV_B%gyGx>f~p9uv9iwpC;mUG@Ucm zUXS-mvDIBv3~ zhP^W6u%#$-G6QSIwly9f@@Q*K>iDbSubMwTU*Udh-LFv=i^L}zoKYf)2epA<*R%)} zwW0{VYho$umUzG?PhMbNWtSxt*eAuxGte=njeNAia*IgSvq^j_WEL@%*$wBYUHH04 z$eoX{lwtbG3clDCiFS#H4SEl2-Wv^xdKXh@mDPFaG(6jq4R;pVnt5g&+soLTQC`qvO`waNNQ zub$WnCyfV$BeQL}hI&pUbLzjn$SNqSH($%kQnn=YtvuYs_|?Y(uU|9%8}!bvPKEN) zia&tcnWEXLf>7SIlQrPWEc&HE(U3;(%~htPEDHvt+n^Y__7$2`lg`!dQdnJ?#J`=X z^{O)woQppN<72P+5+6@iaiTF#cpb33gD<^n{U65#K7INR-@9qSE&2zuZqlcJ>RR)) zTu7wL^42_~r1lu41Q0RLFG(+)kjpP!k}Ppg0h|%bFI$qVT2>==A%gJv<6$hg0);omJ+$6cz=n zlr5cgy{lLGR1Hr)Dbwty&VRujn})b|gkp=?0>|dH(>7lMz3W8_rP?)5@nOPX5$0ZJWr4tco8DYCS8OYEw*$4+XM7KD zYtQt#GE94Sc;3|NU-{29=6Pkny`;*w9$Ui)MxyVQjPz_69vWSjOqNC`$0m}oHESkI zQYZ4(p=Wr_M5zSHUutUtThDmX)8Cg&@l(xT4S%)#)$zB4zomh%e`sK+ zuV*Cb8yj6SG{C?4N4spAn&?T$d%83^I6cL`jhRf2mrDKfi#OI^>d`+kNESnrW2H^} zyMr#b&EqBNFw!&HpA7YvMhAvQOG)4Kl={dD8t>ts7@R|#sfn@S3Ss6gf0ACMhqsK4 zjU*K9t~BHLnz6p=$z*t}Z{6hJ*iX7p56puhaDIn zn(7;LXmiiTP^~m;tJKiwI4#g)mtMQ{&0E@J&xVrfH6%5z%$2gHsN&T4*wEQ0 z4>5WtHn}n<*9>hc^-rL?6QvPdrZ)9XuNfU1;vcUqjks$_I6O2mgiQ+>5A(0qlFiTn z|6HfTJ$=#*2PYVE8%h(K-A&(csb?Z?#VDf^`a7AFMtgdPOZ^T{l-5rpi{1F_x%0+n z;}FAmsvibdm@^CRCrJ%nf6r78pER7BqF;tfqq+^Lg==fJ`ek^6#yp9wD=|#gmcAVdO|AO2e^enEeFpo2M+-=xVXy(p0IR zS$pfM~qNSS%|)# znU=v^(Ioyx5?0Lrn1wMkl7DtK(RfOFHMb>Glcn{eWAkPZkHjbwOCNgcA7^8np*ENe z&6qZ=&0GA?C@ImWao4b;%*q&Q^^r%to2SaHFONxMm48=zK>k`}bCOM|`AIgH;TAO% z%8&LaA^)cLI$cd#6*)4l*0;!S5FQ86yS&qfzD;4Rz4u-aj@mgz~!)YCZ_gQeSCoxIc-WjFvXWw?XF8x;0_E z1+h1j(2Jp|&CGHWL$2M&CX+$3+EPJ52T?@N5}GjFGXN%VQe@9k9ye@Kn;JNSAmc+! z57VRaLZ)zxG?6fm4>7L$o0|B}S)2?| zL?2Vt)Wl{HqZ^)hLxk7K#Dq%Xz|sI1VAHw2i81NWglvdSyYUP$Ff`JOs)Uxqo-wRs zX$&#P443F@N4A^I@y!;yNgLdAruUvXz2CA{j+%2A4V8xN+OuWe0TkNUi<^$ReoQno zV1L5w<>d6YTK~s!f&7b4nEKDdz9ys$csG4hi^9G9uyQV*lh#<4fjiM;NLNpryQYw`5LjH%=CuD`Tl2q%4Pobr35>3;SYnty%P zi@n7oaLFOv!y)l6L)ppp||3n$* zD`+c%hW6~~XH~ov^W@CJ)L?0<$1NBphXzJ4Kinq$W459YaAW~|M}DVcd$wW7&E{c| zM%=;Kksb_ZaTfBsM9{i?5>bd7bdQG|56AXM3b1<5g2jxlOnE~{GPe9TB59$|5LI$Mp;$Qa;ILPSdk_0?t)B!6k1-r zbEkTH7`CEX_{7hLp4VZ4W_Si3)w)Pl_ho=UI z$9np`{}>#{8GdB{ghsL~H?uFpk#*=~C1hMyr*v*=;+xv|rq27OScVbiZD!P{zI3*m z)Pfd`4sCL7xznlMG5pbybZQ=V6L_j^IE63BYWEFlJ%(wLQn8*+r>Kh5f$9yH?-}`S z>q^AWEXuXDtlTPKppV{jK{9!J-uv{~!4UF5H3k#%Os1lYU6^nbHA(wl)x-qiA8v9T zF<}>olPn`C2_;BxSooHP@McoNFzZE95J*D(=nOK^(tFMD*v3idDTdC%9tyufKusdj zSY{jZhMiK!LBLe0LlPITN@pIM0gR?qaOI-Px4OJKw}S9|>FTO7uVH+p7q|qmglGPwk;W&-hWZB+!aN(?5AF|7Pw%7wMP91Qux5^od_^5o zIWJ$^IkKB03)XxtI8oVBag0FNg@!C-s}MIaK1T^%oMy6qnjV}O)zZLZQf#$sZjX9@R-&mX^OID`@&P@CisCC5g|r@Ee}*R zWW%aS)^xNqjJlcvRg|lT)&7ZaO@wPBTo>Ub5ndYMWf5NPv6j(_Y|bT*+lPr8!GwWq zl6X+7ku6GH080W`8o;sumJ7@*lyK^Xv1Dv|N`ZHt`=*z|yGPX`I#iP)SE{4AVjXhj zI^+s=$d&9+TC}@6Ce4Wx4I%sLa!GhYDYaZyb-6J9`IeNy6&IRtWXNrHr1JpQaB2uu zF&pmudF&wb0r6J@^BUEVU2K~J%{=)3!vZkBI3~`XSG(UD_gm|J>lhSxA99UYd;>F07ptJ)1Z4`7+V`6`Z<%oKe`t^HRkLx7NEaWM-bH zl5Rf6#n1vzmDKt_jtgx2w{Jf3;d|eFJhb;wm96YP&R2jo7%)97`Txg_=(NCX`p7KO z9Wxul!oRU^8_P^2m$9H&wneY znTefF6Pv{2XT@fB&U0Gq40A+C*yOFa?b&3vFWk*@{KU4|-%4iyGX|k9L94?sa1+e` zW+=!+54aAb5eej1m>}Qq=+}^fo$3Vj9buTcI<1Etkj?nsY?BV-OOt62>OrGbZyK-O zJYKzJyk^sQ&F1l%`NLMuDunt@TBiRf!-_O>c>rv#Mf1n{dFFmNeQY(zFxs;rtc%!v z3^US{$jV1o=Z-i}RI9JwtJG`4E-j&*Mat zrDuV}{H--zY)0qsXe#qgU7DUvJ)3)ogNN3bJHN7?60H5d@Cu}#ZdMksN!cMcCp+Y( zWQS6p!zN@$OT7*@IGLFpE%iI9-Rv)#Gqn{ikB@)34I9>rC00xdrzL(FNoG@on&vtE zA!eU&sNW`d_D{w`H&u|g>HPlCDhH${r<*6&tYHC?i79L8L639n?iee&1Yiq$6R7NBMThPdeG1W zWn6e>a-+`l_>}1=2-Na9uXL{Pl2q8R^}S>Lo1Kk!qut%PvdXutKFt!iqUWuS%&^A#^o?0x&wQYn*XBO{Ill77dY+3?u8nc(_e(B%0c(I9sE%j zcS?iPLFM|4jZbm-b2w47I;x7h#omr5Bgv-tX0y#p>At#qW*nRS(c7VZLS@8MH@jzU zW5XC6Oym1rgJ$lTdA|@XaiPdcT`Ieen0@S#bF)fmaPwP(^vW^W5Qokt3>zabN^HxqC#t~j(tm&DyiUV$GBo!MK1xwcqm4-P0I6aO7sr7#x z7ua}vXXeRAhu;P5mQsItx4c4WIL#O-4mPkfKu5bUsV#m3i3QxI2yc$CJ4qScyF-=H zy*pp&tcLBLhEpBH(gTdDG*b`D?TQ7m*&00P@NeI;K7ogp7*f=;G z^T?8#z{x326_z&WAkUV7@ye$*jBY4xNH=!uh-uiG`0t-IU4zMFebO^J$r(VM!Q$Yg z&SLvHd$csQacpAUyfgTC&t~m?hQ?R#O>Q0~=rPq-JvCV!=>CA8KW7?gQWOD_byL)( z+-qrbq?e!+$DqtRkhYPbDI~;Ji01T94)&~LJZN-oWS9*Oy4Nwr zS>N-vmKx4a8*9f067NQarsObe&p4;fXm+MR9ej32o+siV7rcSWdERf95>QY5){&k~ zDGoa@A+f}80cuQ&^JK~{nmazrwvs&NG0qaO>E^uWu?=Ob8{`dVXTy-@9hu2>HgOFQ zMB|OBp1$aSPGGm1&E^wb>3WCKmu*6lzQK|XfLof`#oH-ndm55hyN8bS9=~^mA z9f64-8TaRxWbWPDAnwQwhix#gWzR&Wo#U?d4jWc~0}|@Ji=N&g7K}sX)Bj;Y@X-dB zYt-VKbO>j&ezxdm6E9M5Je41gwwH!Ei#0Z>H*+Sp=qI=`JW0>6Lr$^Vy>U^uaxg9g zt3u<4V|8IR3j+r^C#Q8xe6%z%uvzn%yNx^?fA()Or0_X0j%gNNFG=q|9N* zAu(?{&&nG)?A9^;u?*;+#?45x^nLF6qHHT4kaZ;iq0+<5;k19OQ0`QsosQjP7v8X- z=@|{0IFe27ce78zr0qh4SdsN^1_}DbzG`{R>et{@B=n(cTY1h>47X&JR@e&?>8(t> zJ=9wvjy%{i;Q6O|6ar$cTTX~JI&Z=$n9>G9h1=s^qC@>7m3E{}?sv2M-NH_pNh2UR z92s+AB8H5egyAM=g`6XMskCe=U41u}O6%MUQ~prgVE@?o2K~9^qeVMHW@$NE|HpBG zr&n&Medgg;z6si`uC^623=QyZC1G2=(w3I#1nS@VvAbAsj-rqF3EpKg!)F~to%Q|) z{s0F%y=Ez<1kof!XXcTUuo&W`tOIv_;>@` z5wrtyD_?7HEhmdgrtWA^D7&9`cLqFLs!=GPUg8Nn!u@s@TQPmTIOSOV63FGZHGb6M zA8^~$sn0`b?S+hVq3%NICgJQ78T)|+&Bsw!f3n7qDl)p9PSTd{2!4ew+l@9N-1&8F z88LFA!~Aw+!5weKGpZ=rUVUfL$%Bzer@cW4OeIstG?9Y&qa|X|UuqJ3v{Iknn6RDd z$}+Wq?HnuGMk>Nf$W)FAj9q&ldUn1`#mxq%`SS0Fr(NJ&(f@!q=*4K>b#o2Hrh?Dd zJ7umbHT5Mzlw)tdR-|B25bEv4rw{a*h!9W>%VYAvx6^ks@=|&C-3*69a=)Cwv)D@Y z-Mc)_q1WKX6uY;oS>{e{?%BYsqK^!uj~QHA1as!vPMA8F7Qqo0w|22T9#gy^hpz^H zu3lWKbm)9#s50Fi44uA)pzUNS95#J~*KKD?V+pLB4IFV9^V!ZQ)7X5;>Bh$t9z6N_ zvQw)UmUudpy*^09ncSd7yr*n6puc&W&IR44CsJGE9rudX?wP<=`D#p4EYTDW^;osI z_erMluw#irCF~<49K8#XjY{oJ{UyI$&t8($Ff}d&P&u>b-#SNijHtg4!L;5V|1B!46}dY z0!f1ejnea2E?z7nub~?a(uy)oA$bQ~XPf_5#f2(u99lD^g(~0r;X5(3Glwzt>J=M0 zsgX`Me7v>612B7r@&yZ|2%4uda{B^K274w4hvk5|Db2obAX+GYx(Aasn#_6u%Psn* z*^Xu)xkZ^48KDdhXC~*bb(GL!BN)aMBx@}AVD_rw7}8ijYXiM%YaWLb zOsfDppEA$38>zL~&>AHp3~rnOy%@xJz)M{%)2+60m($xF~m z5WXd`v4<@Urou4aOIpPz^ntE~M|{izL6S}S!6P3|^l>8=GW_VkL9)g1^=x#{IrC~~ z0MQSv|Kqs8L$BNB_SdXE;9+R*C%|omhJM<*e7&VDL-On0(4Rv%=fejX6w{fJGoNT1 zW?P^f+39l!WH~@G!mE0teZ(N8!85iKh9-Oad0j@IjPqMmDj%$cG_w^}#y&lu<*=4R zybX#+H#s@YH{m8H*G%g$fhXb3;^z4RbRs+PL3G~v^h|-m`=2u?p@F8SM#38kRMsy# zCDWY##HfZdPwYCz%U#@K7yZj$iaW(GF1qs_#EzM%riogmAw1Q+@pa5rBtxWP6d9XaPS}Ccxz-fCl1vya1WnAU zE5hkMZ9*^54StSrQ*6Z}zr9H8q_;HDw^>%gjUoF87}mi@RKxl&eCS7UR`ucxx*K`3 z$%IqwiwtU((3_QFhXz^GgP)hUEu6`9PT$kuuD)91Yn9S`&^QW^NZ0+x4MSu(l$dU6 z_;=hwndz|7s&)fkRkLGaA(?yZO$zHF=1gHk@?64 zUq#a)dwumFtR-Xy0(KnX#&J1gAQl7m61c+*T8*4Q$Mp$hAhU!mW0bUSd>R!)Q4Eam zX}=O%Ft?t6JWH}HBiD4V>{IL64fOr;K+FTeI~cO zvw*e>y4XD)q}xI@Wwo>@o&WM!6r#bNrJ-iG=NbrJ6x1P5Eaz~SN|HXGyW09zfM)+t z`I+~$n%kNkN3mu+t1yKX?a!fuHEMZW)xL=#oLg4#YX9hdZfR_I=oJz7tuOmrSm=*R zVu*Iz7APMlKsN{M1}i=`;psY^V$h7STd;(}amo>mm*QP44+E0)tzng^SROqyJY3W= zeMTUzlX?*A?VIRXGgV|;h8TCdTiNAZyxU_wxw@uEWTGz(63s5Fe>0X7J)L3&+lk_k zljV`8ZsU^~zN&}5acM2)L$|gN9q=l#5*;ezVcZl^xU>~lmWH#dq+2BmERtK(&?e@C zBIh>n_SjBi7oq4JfVtbk?WejgKCm0(79Mi1+;_ny*0k74#Jkz34!h87AqCHY#Z^Vl zfngm+LD8c=#wSs6K2ke0%7M5|)m#ZRZK~l~%e9tk9oIUpOSmpU@Oq_?3RUZ;MnARs zsngFAKDwR9rRk8vpJ&UgQ`WEGLN6!ze)WxmKC@YPoveUOgWRB*wEn(XM}ot`Wp%j{N`Q6i)Ej>lSUXBFA(inH8eFS z0{W%f4wtZ5d#7|zD!Ov3UOXqcW-(rEzijVNznrvmZ2Nd374edFO$`m#6PwJ)gXtVA za;S}YZ=y6OZD=6Nk%ykqxgK_MGLi4e+5|QiLvzDiRLd|ewsS0Hnu}H+B%s+_?W-d> zmajYQChyw*d!GLeUsYALJ-7F5S5Z+=pz#j!43Z09iA0E+v5B+7(ALLbNJE zB3(QDXC&JmQN5my=x>By?WTOrf-d>h=93Y=04yHSKM7V}2>-I%+U@nbP=1H$TMqiJ zkqpnk|6=&nhCe_Cim5sV{N)`@G#_ z)$7aP&_2J3WWH*V)$3nL`ya~<{}uj6j}@qY(?VexzsezlMA2jJ1T z6VK1#5f=Ri@C5!>9cFzb-I(z8lAM2y+G;g;ThgkXF9j>D@YNCiI+&(+^p}zkk6ph% z3q7>?lTn*r61CM^q01&{EL4F5|FXl%ZTs^m?P=s0n{ds`Z?Cc?`ieCuh}7C(jm-UvSw;fWqAcYAoI4ltXt zH)UMQ!_h^2io z{J$Rb`GZebZ*@Er{MZrJzMb1tRW*BjE#z&j+ZN@a6nG*={oIOI@CQt>I_E&z*#g zgh&1LsuiX)!hZl$HAlaD7i)jj<&#I6{_F|q{+fvY_K5$Ui2sC$e@VoDSH%C}i2o!SpJCwI|55O^9zPr5hmc=w_z~pa zyVLMnsq5>!zU|1v_rAjVRJ#2Lbr-+t-a}fdQKh;cM0*OWJ?n~Q3w8zXbCvNg9>LNi;Vv+9hoHHyBbf1BYkaP>P3PlEq?zTqkG(H=`rzTIc^hr!oH{rKd?M*jo!TkbHtGwt(7+Di3O zTb)U{bXAqg{nc5fhj)S>XT0;cN@M>t#<=i}G+uMb`e=W6+9Lcqlw3U0?KfU$_$A=a z_Z!|;dBQKA?ZE9rhED+B`bNXO;OBjxs=tcY8hsjks^|F?_(PulYw%mIF!^5!-j%ef zi~4sRdZ_VuA%r8a`kJR7fPNeplj87|q}3d+w0}qDeZaC^8=)($=-ifr=As81Mo3uZy4u9u#Yqtg-u6l#Xe;jG|_I>&QecE`M@qC-X zozR}LQEKN;c&xS^is)aA=#vrsn-P5v@|RvI|0VRV+ClwWAK_OYX>^VKpJ5aD-?i0) z(4`xqe}OTjx)(@$#GOVz7CeUSRbT7_&u8IReZ~LBvrK;J?ca8^{H2Fu1J*uo2cJYe zgMMDcI8}W$P7Bbb8{&WV?S?hhp53-Q9}Uqj(hc>?-}#el;=h;5hCHk9wY2v^e_4co zN}EuG8%N)LrD6H0Hy&m9gXA~qc{I1)z0l~ITT20>bbs>rzjnr!9_{N(+S9;l=R3g% zlP8a>?gFp<7sIbXo(CE4qF)1U*lhSZaFVm}ekJ@zjTs(-ejGLvQJl>zc3YdDNFnb; zCbhrnz6}|w?}YD;`tGHJmi8UccSmNmk8H>~>L{!_zTpC^<0w2yg!>{q5aC_X2aU)5 z;6LXk!+!xki2TY^w)zOlLOfU2Ig}-=vOaP)vVz|X|Hq0Z+n1o1IHb?nv zgf9D|e7X;@v9pj0J+R2I{Nb+G8P-_14?Tg^>B*m{tolOwa2NBnY~w!Qe*^E~@kP`{ zSamse-0GI>Kc0Gy@m~V|F8VJWJCt&N4L;E0*Wb_h z_V@^}?5%iq0Kd%RC%UZt??>>{2CUs=+yCORY)%PG_g9HtHE3A$kI?>VE4BZpS(``? z?*@MhEL|1;F=#Ipjt7d$HWCfbyuojiX%x!gX7fvHZ_yUC{^!rL>JcZRO9{M9>6 z&Zoimf>o~Y1$S8;{{$|qw0dcMu`BuT-v{&);sPH(;`HAY4m$pekZx0*RbJB}R)%cf z{_6~%N?upcrjk`{`XcfQ{4YW;HMT!R+B+!Q=@~pf>@=BF&t2eAdkH^FLx;Bh%>|~T z>*4>?Iffqvx4g;lcfo&-c%F}V3K37$h2?y9d~-RUQzM?eBKn$$eqcl&kLa(7=vyLs zbwocmq8}U4-x1NX5&i0j{$A>(`Al`cfO-k5?$2&8{B7_vXB$>Kj6+x7e+T@&3(9FP zjnZznv7EMwvXrONo*AXRD@yzBDD7@h+8v{`7e;9xh|=B^rG0sncF!p7LHjJ)Z^W&it1u*SA*)>kuTXEmQaah2(V{ETM~ zF&nKhd*DficZX+p#-nVO?81JF%)ZDL-*cOdIp>xaEqKL}sP&q=hKuwtO!pzNK%%JZqyt&UoMZb}R{ zf?wTYJfDPDv7*5L8L-B+(q=wreY6dEeiVMq6XGupSU#H9pYmAq`jvym-vs^)8Sdfp zp^IFe@^8lb%~l@)&sh<^D8gTapJJRpbRqM%=19%u=MI>yR=FF%vj4&h_BB67KI;<* zxi@qd+XBnB3qK83KEkz3kV-4O7t8@~2c|n5y=v6zsCdEmX@9ke+W%7vtiNi|vA=xS z+D*FmD)L7Rm-b#3V?lG4zGpPy@V#Uek)cu}8fj=Oi*#=`5NZ}9j;@O~pkmycMYz8Wt% z@I4-%1pd3nE5Khq!+6@kXJ2CYTyTTO7l2o7G5UMJJJP4hQ@-!NGZuuket6d{hP7t+ zA z0iW;jzTi&ERiAzs{uSUIJ+5ZJYRuNc^9)zXEWKUDbyxll1edryRLs+XcUfSskVfE2_JXRn5 z%wzS@J&}DlF0v2rzRS|e5Bo3`*o}N%2EOJh!?N2y95ehk@LK4*!z21K+Fw}hUrisW z9pr>Be6`7Z4vmz1z2S$b@5iyXu)4MArz8BO2=6>#?SB@G+kn-N!tXlD^j5K$gONu% zJOuq|?6$CM`1jspST_7=#+T^71y_-lVd!EmXI^RfE3WjjJB>&4&NGAfi|~9N{HtE` z6^{aM+h_P_@B)t)gOByN8oY#j=&Gt?!4EKwgf*rPW*iA?9R2xShMU2!M(0KE1AhXU zh1Y=Ja*1J$o!`ID@WtSFdi*x<)Ec8d27c1#qp|ZieW84w2mgYru=KOqfxqivP<{0nw}^w@Nqg$dCDeVf4kwAK)-d!##$G7emKIPitsgH zl`EdFfu*a$k4N~o5zenQ89L#4Lxk5xc-rf;_W53UpS6i(o}jJNJ`a+%7p$^`2hag7 zRf=K#WYDm5EVsz)iDD&>(2r!{Y+&ZDvQFMlo2U(y|8juFm)fuiytl`vfHh`C9|CLr zDSSwW>45g+f7fkTd-ZLUMe{k|<4myHM}Ek^4VVm?ufGuCuSNJR=sa0e?EuefFETs~ z9=O=>1b995k_?JNJ-^(r;!xkGAjEUB{Tdu(KJ^~cfd@$Y3C7)y@a&I(H3QZTn#Yfi za7%>uewEeb2+C?;?WTG?LI%$;9+_&LKly<&7vYbB zJE^0~2mIjOhBXJ>O1?qnKYhUDyceFM53qVkKNV;QzQl zxvdfY3bIkXD#`YfNQT#vkLb$(y*TaCdEt*jmu?7OPCkL>yQB^D^P+sN0*7*!!_Tct zy9Sxn{>tYo5QEIWQAJQ6{e-x{S(_gJ?j3tP{A)cL*-fpNo*FZGG?!nBuB)Fk zo=@*E8*w)Rp7?4%X0T27f|Y*__#Cj>S$HhM?*vOW(Ql0KV_>zF=%0!3V$UPHHcmqY zyO4(-$~qk!%KF?|)1j5fx$Q}&-&!{w$J`@b*WB~HqYcZiI-t|A_P0N~!t%jwse0x^ z*3OFMfBHJB<4ef%Xy|Gy#SW9>t*x$xZ~*p2?IZhg1qB5;A9;t_?zi&r!)IDqSA+AL z4BrU8%j5Tfw?w|wx9Jx|boTKttihxkT7#{;)bf-qUO8!4Yr-q8F)aV)k8d+P2JVjd zyCeRqBmO@}{QI9^^1qD2j|U%0xxxt;wQ+bau=Gdt*GBwr1gjrKe`kc>AK@=8uy&K3 zEkr)SUyn1oeB2EqhBX&n*kfgF555$veiZ&Y`l-H()}(sWh+U)Ql#uJ#l15&q@jR<8C)e@uT#HqB=jw^}|M(dW12O;?3q z16^ZQcq3Rc2>%40eLenKg#QLsdx~cd_yc|eSbZV->mz*dE+(_)^$k9)#?Gd*O@FlJ z`J%^K=X~WhqbqK59sEJI2O=5vEm`{?49|h}R!8m0tQsfFBn~CwGO(&>i93`;#;q~lPM(rsFY-L$ZfiHK71!QnJbwb;d7!obzO?7QIpf!vl*NpNok^>{ zJ3Yd;>}NV4n}11!7ttWW=KKr%vK2~uD0H=z+J8O#2Z5Eg7~u?9eI)t`Fsoeg|8dav zTIGXwTx5C5hr9S)Lu&6BI|d_bHJ-D?Kw2ezrWA) zU+b2$Jl4A9jsfd0`Io(yTAs3X=e@^pzv$R8wYluxwr@8qTX$%;wc!Jlwcu@rzXtuK zy@tOIex3!1`bhQN`GE4=`imoN&ec44({;u#oBtN{U;Vg0_!{aZta^Qn_7QFp{oRK1 z;Mc4(tUZPYkXbxyz)LSQJOcjHy@o#mzJ)r9=PTe{`wc7J@m){<8Mx|BqwBoS8Mhc# z?Bg3AYrk~zwN@|5zmPUpp2EMPj=O_Z-=V9mFZL$Sr&_GvKMDN`6h=Creth~4(*c#W z5B$Yc4d|J_gTZgzo^0NAw3G zdZu*bVW^o{TcC zW%Cb4kjucTukc&IYB%8oESn}=bCab#h_naem`P5xZ7&&0uhfR$F4}n4*@Wwlv~jc> zJg5JQ^~-DE`7hd5eWZ289d9;#4S3mR!`Fc`w;9&@VV&23kAq8R8U1l^wa5Pf{s8EK(z(qZ`|8>zqgPHB(eUcQ9zMev9& zo_oNe3qJ+k)8i`q8MUYAKPQc3Q`+^fGW}P*o1(s~WucX|aJf5ViK>s~h{VSd` z4lC350xN&fj{~dj!VkgE6yWdzD9lg?}^CC z{|=vlz>pl?8y@Mrc&_=7)lqA-Uq$%R2wxfDCNTfquAdMW*!JSSUo<@N#66JiP&;Z} zSAZ|zp}P&sZ#x65wiABjGT#T_+dO^|X`ci`a`zO3ynwf;+x?SzsCQv*IK!ube(}53K&5yIok5qS;sc8>L~m{8clsK`*CiJv0pyCQr|gb$+))pu&cw@%vJDc|v%cNmthvj!gy5v%0Gop-Y3uk#}t z!ID9^7c9FVygyiZ3SSPEuOPhoK9f^(UUq}E+iLQB59M-kK5H%G6IH0v_`HlOV!0Un zTdp&nmq5?bzv5T_J`2CF`uA^dHmv@A3H>gaMgPjJmd_5*PorHVo5sm$E3A&1OFsNA z<9QwQRkk(yCmgJ?|E) zqx_GjJ(mA*>S0D-PTH@w8-6+btz@D+C381ec?#!|UouGkUa)wCPa?0KxQgdK^hEk8 z-P3wSeI&a6LY^nVBYx@9J*4H4d;TC;br_pO8z}21?=&4a1AM&41K?L+GwDueKZl}v9mp6|d#Zg3C{JkHKCtFv zwe6Fq+I;x~GWcACp9L>~NA$bEYER{J2c3^tZeQ`IlqIZoSV8*;t9?$t$gtL{XI^6X zT=4E5p9gO7_yX{)Q^xa6@ayj~{51GHkF{3+$=#+i(vdfJTRWdfn;%6TRd?;dZckfD z58L4R!Wo9!!7KU=e*?Uo$6Dj9rQf9k>h~WNEYDkBME*CMu4*m)yPLc|fN!M{qz|%< z3*b@O{h)soI!)^6zabydmCsN^zWDon(FbZt`haU}Y)x@wV3+)}GZ@ z$w%Ww@s3-$O82x+cpv=AU-7#`ZnJTr^~pl8_=V59!RmV)_;v3v{z-6u#@b48*sglh zz01K@!7ttTJv@gVZ)Gi|ZU2Cip*-(~=h7oAAI&MBW2{LAjkW*sSiadVrx;zap63&* z@2%vy-5F)PON9Tp#$-54Xp65SK zHyu#?Znw48&RyW`BmC@;@r(YIcUifbn=V72WtXJq#r2lYp3tBEu(js`9@aCbt8F!> zpYvM7ns457vC|6A>!S6;GbdSF$tLVJWNmcv zYRN3SeF{7@rQ>M;i!T2A@w-Hq-!)AgWrtq^{p;wq@V4NeVh@G417|#zZCrP=(PeMn zcZOlv?F+9oTm%=-Hmn%>!pN`7UTSp3C>OrRu}6Yk?Uzgl_mf75XyqJ z>P!4wdY<8@z*oG{bfy>lWAp)5=X3s;x(Lg+tiRUqH2CHB7?!WN!l(Te_(sq3Yj882 zvJ+{gC)>TctS6Uwy`A9MGw45$tB$49o{R9dZz$7$PX9{&qhQ>|x6jew13g|0UhZ)< z_?5md`oJIeeX$0-H*+Cs=WN$^-e>q?=o>v&-1&G45|7Sp{p3cIL9xPjAhYyYGLPI! zUR=Kl{gj;1wWfUwSh~F@`1ln@*I3xZ7?FM!$lwC#Y7@~fV{B?1y$AYv5#9ur4vRhv zR$7g(gTT9iZ-BnY^9%0vgYpr* z7N1A?e;9lKSosJa9?^G?=-Y#L^gI_tZStlFzk+#3JP%N>N20O$i<0%V#%80(8k_Gw z!{{21-}HU0G4kzbTzqxR+W&9RTNw*v?UeM|*I8MLZ4De-#-~Sk3q1UHhkim_;0^t^ z?zz*E2i^qfPRXkDUw}{TB3z=gQ47~bCvv}!$D1ktH6H)vcpE2Q;Q4N3qOqhl{WCy$ z3hxUD_<87|-4{UI&GY;$qJIaaQGY1yN5JY2;m?ADJpb|v>sQ&?OTgk0{@oGQE}B=i zcr0J)wuMHQFZClbQU2mTZm)7a-+>|@cV zm3_R;^T<9H53_Q$2L5Z#u=X3j)NWYo;mJcRADw}JX_wIzfBDgCZ0+=C#`dFNy1q(y zEtoEIxIkwGUFrpkM|yGvJh)bl=dK8!3KoxS&F8?_{;#4~uB(SN!3&{s)gToz!}M;Sq+VtCvN(`j&uE*vCEA z8er|wrmKo2y@|h2_XW^ZFVVZmUv^xvfHU7>P`wM^4^XR?Sk27}2+R?W=!RjlXliSN_9|p^Ii+%?< zl>7Ikmgl>m@37e96y6ss`y)KG#O#3Z8^O{C;dey%#t7dR;V(qEd6~(ev_GI+#CG|t zh92@<7vZxb{LTo!FT!tFUY2<+SnZ?y7e@4Bz^c3GCq?+T$e?}^{Xz0nn+X2`e2~XG zg9Fba;C(%Pe{g7@>Ii?I`i6R)N&cZ;m;8V1y#;(0N7p`lCxjq@+_*~!?hxEcJOpAy zfRsRp+>k(wJA%_B5JGTwcXuh)Vx>?hQlvnkXp0tWu@?ERYiF08ko0-}-|zpt&)e_! zk#_IB_UxH6XU?26Gdnx8NO*~aw@dh_gda+B-buI!cr^L;5^gGCcL{fsa9;_pgdMc< zP6F1-H5j;*T1JP)y4~u-A2b^t0oHW5DB=4Oej{O9$kF)iBr==ztIaBT^(x*sL&(T;kbvKn(tB|u*Vp7)L-E%83ki>mZepchwhZD6(`5 zQipd^+RotDWLik&-G~02V-NDj!X_HeLl3>)XVntrIt-rIH8BUN@(%``{Tk`5fKg<_ z0pM=H8c%tZhjd@$TTo4V9sZ_`F{0sb>?5ed56G83a1{6p(95X!qKnXh^doLq6Qa_W z0MnmI&j6l}8iRXco z*M2E4C-7)_4F#R`Nc$|1@Nv|Oro*oiwm{i6dIbr$knl|KYxTQX!j0g27#1r&P#tXu zq`2w@Y- zNww6|h9EDkeJB{G$Mxqu^*Eh5jT&<0ojxz{q;Tz3 z18aE{8!6t=k?z!Ar~eMUt3nv*4`+%xCY}SjmewD1#;TGQWzgsiEp&Wpk#6_HOGJA? z{>qSpDF7vH%cVN~v&Et=$@3Oi<2eVLYUNrtPS1De8lC5Dg7AB$-2z-imHz|khW!oc zE1_pe75|#9Znq&Zdf7_@Yci`M2G|Es&Ti1P`bvktYVwPQ>hwRMgT~_l z`5Mm!&^2s^4Yio8gBV~L6`MiP?HARY6_TZsb4JOP4tjSgZGfVS4>KkJIaJ zE&NbR8-lvl>bGfMy}TLGI(-J{_G(_WhwJ`kk)p@ifze{k67{LqPuHg}u$I>w$kA*v zQ{uTS@zj~5$JE%#I{w91l%+J}4<4e+|81f!({hepj|~%bJ1hiUE8{Paulem_@NmpT zoeRb5X%EfS`41wk79&4p=`w9mUaek?nL5vD*jbZbdAwd<1Hhxzd+D)yz8Aow)%)gA zx(;>c>pEOSJ!)-E`>nd1UcgmU{R`&Nd0xP;v~vB1cB7oivu>7NzXy8jWvPdl)$G%y zzs_F|ax`BWg?hJB<(QynV-=r98>`iCAJm1W=hF##Su#N{uJYFa*7Vs4tog$h@N4ux zmg)IU2iD}b1=i}KOdp+pDzFx(j;T6sJwliNmxZ3TC$LuDCO!4~nz~TW_Xnx$&rlbd zZubZ4JQIiN@-sl!>emrilYe!P&f}Y=%Q*%ft=_K<)OB-*Otx?I$=67$@stNo4VB(q zlDP<2;~x&5YAVlosV%w-tm*R>v9Ia*SuZ_bU-*x$n)Vv(pz#H6;;ru+O}*hj02 z!?0&LHSIcJtuB5B)^t0wN|))rTKAKM8+0Fjyh$(P;f=b#y^^r&X5A*kB;0F^u7d|+ zQ`4>0I$h3W=%CqQ=SrR4N5YO0&mW+dRm-(=h%PhCtovk13Eu?P{Cp0u7CWb-^mrVS zpxZg`Vx9kKhF*6sN9tpeQE0EUvQ%H8m(ddKj7I-GOz+o5|Sd`txCP_>$%uH{kPC z)U=^!2Q>K(Q*>M$dTMQ2z%*TEnHf5M10Jou{CenqxCS=VeA0V>&i@VMR9EwzGD6p< z9_m^v%c%LfJ#Rv$CjTbd$zp2S5Y$~Q757Ko)l_lnBHiDLB3`tZnvM2f^OM=AJ5A1X z_^M`Sul0IeB!I5v+YT}{JG5P*>l^_2Hfp{-fi<3xcpZDe_cYt?YAbwTlQrgWr|Noc z2iE){FYKe)Z4~I54$q;RR$tTLhnoI9(AU&ab-08Wudm|Hi18vSzAE`}8n9O0KM~8C z&3kXr{oi`4-q#FYtCzR^LS4^0D6dhK?~U>jN9V)1C{6eC)AMwj&qqJ5>EB?vKDJo` ztoh`oSY4kI;I~)h_X5`RoUu{2j|Ix2*=q4@-6osD^>}x((B*qWUO`o+8E38Sh1wsU z6~9B-HM==%)9ELGS=ao_0FM>U1CemNgr`e*zJ!-cxb9RT(+z10qP_}24%d!#Mp-ET z1aK1k#2R=$`iH|E#kxH1H@Sqm2FbwnGL5SWp1M$^OErP{UhR7n5Vw_gIj0K?nS8HP zdVwfA*Edyw5a!GNZajEcUh-5=74(+CL8xo;6wZ%lX2c!X3}1jg4Y;U^GbQ@)S;ALK zfTt!feV#Z?DtnfMCrfy?gcnP=@>HP%ZS@X)gk~#u$yRZat(u}-1&}Y-GCZs=?7%$; zBU%g0ci2TdRr>%Z<<;$T7??gxJNN>#jKt2sEIV;!iKjW@i}l6zN9Q^Sp06P@kA%wu zlZW)D(1ZF@&SL7J;$D!+c7yclkjZ?NHBFM7w@9n$wi*1zRsIH2+CAW5TvJXViKjR^ zU+T|y+jeMUsl!b0oF6LiEZ}_@7m+?2c#w+c03SjulRgjFcMt%c|M{b>7nssNtMvQ5 zPv?NNfqV;c&I0NQhf!z6y!_> zW}iX)sI%a?3SnoviSlj+{Uq+Q>|F0!3$aAZSh|Wc{h0Iy&VtUp&~@yE4*ce7JE@N7 zpCBpw${Mc|xDE9A32h4L?SO3-3A_flm5SE_mtHC8T(doQxxmGN>q8%=r9QtvZ!JDw z0BiPXQB`jf3t-Gdo!3DoeV^?SZ4#d;=HBQJH--scBF`mYh*tQ+{X{#AnDAr&{X!hBO(p##SaEu%zvCqU=JYlY5S=eAA4 zdnJ4ZWuedTyX!{-g^zK~d}Od_cN~GoqVAB5vX0B^bCDOn=M*l&crYWu7cB_Xrf5DCA@Suih#! z#|=-m2wQO<*J3!Z=FegEgimr!?-tOh1O2va4dIiiFy7JnLI?J3XZr|#`ok3o|03b8 z;HMmZOQ|FD2djbWO$I?XkPIV1a8xn(1#CfD))8gyl<-~&zk<(Lf`{vOihd?Azkl%* z^+h_rXHgdZL+lA$J4*N4)L0=u59Ch;E&v|l9$`Yae87kdSHF)e+# zb*iWfj$OVgBK(|on;0*~j$9+R0k{(Qi4!FHNZ1@ztnA;h1*ibbv^P;H9G4Tnl5idH zXnpo)5^hpg=)-m6rD12dh+^kX@I$Dme0!;ME7A6{kN6343#syhP(e^z$;%Ny%h!9V zki#)haoCV_*2~eMsviRH1*RPK<&ELz%$I&XbC&Qcj>FmlQwQQ%;9>oerx)zWw0{8K zQqyh){t=jT;u!EyH}Y6ZtkoiZXsO!qW0mFn}T?MvO@z20rBzj(n9xT!G zOY|3#%n*skM&b#T=(Z9)T%s41=&vN1e@ghXZNhFC`iGrO1mi%Rmm}i*nu!5twostL37c zZ=^CVN1$mjehZClF{EV~&q(+i$RrQ-XXnK>jXZlm#}GuJXR4TGX|7`GP#rpxhdN(G zzQokIaR=Q#&yg2(rp!%9OU%56s+cnCs+cmLtNK&sMyV{{qrB9U<^2tqbwT{IgzLe! z9K)0TB0Mha^1JC9N(Vp--T!*LVu{nO6 zz@0&#wLxHO$RCGsCP>P&>k}wLzoN`B;IRcJ&wk{kw1=QymUzOz!!nX*Hf7-8xObbR z!%hjiPZN33iMBY2vh%yni-3zEEpaJ((cW^LJg$mpH~4%pRKjVz6l% z3H&?ou`Gf44O%A^^Bc5nGDTV9z~hJpn6|0|yZ~)Gu`Tdd(3#i>Y*sP#FFQfdxrX{C zbR!S-Oj<4Q7GS&D0@Kb7V6+0@VO=yu-64Ae>+W_Zp#$6hz+QrX6?l3|I7-591BA`b zgXeULz!!k`tMog>)r9}>`Qlp%pOo-<315-$EeYS3@KXuDlJI*84}x>km%N~ZBQRr` zI5A4l-GS?%po|6Dc`SI?$C1Yun0`f^0e<{#;Ey&hFgfu=%VFzpP~=9Yp{z-3M7{Fc zq(&9z1)eU^OGxx(z({5we_Iuke~!doR^lIpx@3l|%QAIDTCVvYs$%}TUq{-Bx}1tS z4#u+w%dhMoo*~K^fV9tIMcMfM>QG#>Eu$Z>e=e)y_yGO++*-B8P~3MyJab&d*xp`V z%+s*lafdU}j+Aqwq0r$u=wfx*s&4D4QQT}u|;X{(-*mZdoCKXlE9St z8!+`D-UM7h#aDo7bJ9-$vyCABAxX$N3mpcb&7#bkz@N5V_sBuM}pCA)vHBjcS5^gm{ls5+Sq_F~7RR0M$+#A?^F370I!E_;j&8mwGMV8eg^tRiM~OiZGl~zD1(%tu4ySJq0U( zQEcVkm)Z(Uza@PgFtQZ??i4W0q~LkLtRwO~t1IMiEc@#k!CwW5PK_5h0k{bArJP;( zSvFeW-M~Yq3OR1T-BX1fCIa_x7CKCW%$_y^v#v)XMp%#BOEwUWp~X@7I-&m_@Ko?r z`H^-D(z33Zc5y}FpKR0jAdqoOiG`H_#N@e%mJ3Bv_II6<@HmMlkDc%iVJhsf&}5E_E6m1QdUsSo*6!9)KiPf&f~ z1AJ~@FY$B%pQitK;1a6*d63CAkmVW!%=V3VALNjq^9B1_2~3~=uC364^GZHw)4-~< zIa8L1I(h{{;x>W#ToegR`NZ+ihj!pRNW1o;F1UyMIpzXzQucnkNc6uX`di3n9hHOp z)iI*H?SbP|>ZbN1D8$^&g8n6VHUXCc4{>eC#K}OJ#UYcJGKYr= zTXFuPsI#yS=SkgRXWE2wThYD(bKdI27s9VDga0)!)HM(mM7 z=f4II`zF#a0kbT`VK~@#uw2c-ukp-|5xUXN4OL7#JHyV5YbW5dDxEfeJYCQ^M==<} zS?`pe1q`tYegcecPQf1NjOF3LUxt*M|M6!vPCC z1Hk6glQwT$Phhs;ac~&8rlMO7JJIIz*joC~q8iTFew}Ec@c=!vtpEy&XCiKw3Tf;1v`(s4=Lw>eDo&yBt^TxRpf%&|#7Htc8egytKSm?m{Zb$U3 zY-f~b9$=Q8W6|mo&NoGrr5Donnk;Z1;G&?@CZzWTotX4jz-%i>@2q0dpVt=oa!lSG zaY37~JzR?RkeKb^0F{ShjIFRC>D-@ty|eIDzOT9h%(4*g1BPhB71H|)o-aUHg)*`( zJV5^r^g_U-Z;@~+Fw>GAgV;gn85lcdU|W`jwzY(9iD}#MI73BcE}+x~(TDOq?Y;(r z&OMv=^XhGHH0aECJ?LjaM^mZzfT^|MXaD;=QS^gRkbe^xVQ3)!78t54*g8qa=Rmhr z>3t^&okOV`VvYJo0`~+yv!>dZ8&Yhc7CFSORW~VZ3g{&)E#}s4*10&f#(8`OcQt>@SVW|&j&7| z@^FqdVyK`m1Wr=vOMv&Ocq#Cd1i|wy@P6dOyf`;BySK36MbQ0KdU<|r zM{JiG))zXkoj-~8f%SL?JeMSVTf&be{HKKT4%E{Yk#GWd=rfc#Si&QL@wbsb+Ppwu zndM2PcYp5!Qlge-f|O>KgqKKoorHHt_^^c6!Y?)ddjS8VeEQ#L*o$T6Je+^1hmY3UHF(-f_#UolYx0c17=`lLf17|A1H?%Z?u@}%NtNE&U(_G#=?la^ z>6BBhoc`SYzN|h@8j6Z6s`7jV-Lx3%T^jkQGLOOG;693+c<9Ntn>uscK}`AnpjTAs zHn=7xy;v#XAJn<6z3>S>o0Nc)(TB)`A-y7>--FG9KQXTtpm$y*@Jry=uqTRR;CDNd zU{8opz9;NoMc9_l)vJ06nJ(aegZo;Xya#5?GiEYkg`7O#nFmZdvEy1{H@3wGrS>Af zg=kNiHXaB0sk09%mwFO+@)Gn}xc2KP>gx}bcMal@dbS2np@{-#0N(;5ZY$5{_at1U zuF#F+)MdcPLiz5lb0V2D(Z~JLN4h!8GJZvM#A1dKk2@jEQmV`rAh`dffsbBnr z&Riq#E&4pxZ+XafLcc=!>{m{05_ku&2^d9IzR#B|(N7>P%gD4r0m26wq3q!jK2}Tk z1HZA?v7@j*>u4APO^c~~up4!t4OcD@JXR2VdyBw)XI^KakW&rxnsEZt-^-$0tZTk! zxB&k|_J-x4e-BKbA-)cb+X_BiTd%LR4FqOi-dv?~EaC@!n3i*hsSSmmoR4b@%(^3P zg|w_Y_V=mLLVv#Bs0f{@1IPDP)kMBr({TuCaa;M8_~KxJIbJz2L8Q&X%~j}=kfrio z*J+@@i$Pza;$^^YXdjSF@d4{pkr$sK4U2`GvcT7%1MNw>&5ICuan53?gx5&8g`co9 z$AV|q2wVmHpL9W5 z>dCYPR|@^Pe#!$FCRM(F*;T^5(IC?fwDTdH=^JcU9pgpXXwVbD1JMePLl2SHdFW#S zqv5vVZ%;Z3%(WQBR3F{}{4@NAJZw*jfnW2_3rmGQ{=E5_@ByyDiAWWg^MLv02_NVS zTw=JWmvz8ZdyBNif$NMAn9tZg=>pdT{!YcUfZbyR-4Xb{iaD=w5PcJE!oJBF?EtYW z@XKBT`vC7$u`lqjae~fwjHCJr90*)Z#X-OiRm|t@z58I`! zs%_ccR_P_u@_FM66|Vxmy;9Kk0WVbXSHO|01pRB^5~@B2fXA2x{UETXiVp!7P89UR zz)KPY{ua18+Cb`j6u3>Kz^8y;Lk<5?oEhk{-T`ZMkrFYzXU%LC_8ab@7MuoZc#0#}6o#EdB? z#1S!LYM+X00k=XNk9hRn7XE7#*_!*h&+s`Eh=VASx*x52;d89c^Ol45If{&Om$Q-W9qbuM+2XmAb1#4 zMG;fvXH4xv91%07K36eg>OEqCbjH*o6*HznRLq!~fS4i=W2zkDf|xPY8$L|Tm@2LE zGp2$NFQhZ32B`dusr@Qm3cN$*VN9)1ZOfP{(MzOdOqo@@3i!vBg3g$lqGHBWSHu+a zVoc>z^8hVFrph3uNIweP05L_(n7W6UB4$jTN)?zf zwLq;G##C1oGp4S5A$S;5B@k0g%b2o4OcCD&eyI8+V=5AD8tM0eugn+t0dOhR_ZVyM z`wRMSz=sicJZ zY&ZjHoq=&u_H;P65&ahTbWHLSzQy;wEhYLw&*5XKnK+(!tiaEJ*O`RPO9FR5tm35nd(l%>%(%U#V#aMqgy1;?d>Wo> z1pi;a(-8m2T8aN1>jh@~ESx0DdmOla7xCP(8~V?vCwzlr_vJ94;)lRXL5E3|G5yyP z{$9dAN%)?G+rd8zBCR*_nhlwSfLULgC7!jgC;f!aA;VA>+9W^tqlOFI6}Wwhz}R^U)}R+ca4{ChV_8YW3;nhgFx#b8xLE5c)moR4f84Ml3Jt- z%rW{!^i8C<1Aa7G;9%hH=od&&27ZS=j+oB|8=)I9V|K|XfzyFs!QV({{B}zfcp`9G zn!p^_79J!p$F*VbN%Awsqfn>Bdw^@e4~ZG$yHyHl_^@N@d){8pmB zW*@q1ny8DyptqF#>XPJFk4Fn0`c;VJSMMdi+9dhaQpvAgOMVrcD&)|w($fT{U)f52 z6~0=~w}2ik`BlvfL8o8sk^E};NI|Dx9a8;=e$__B^sA97re8ghd}gBLSA`_MdMoj~ zMOw}NEhYPRmHaASrr@DpjgabPq*O0mrFv;0)yrX3ChL8Vzf9njz)mX9G2oW4 zIn&bSn^esHddEmXr_J|4fAUcOZP1^XetQyjBW7K=tC)4s2zjx+WnMqS{v4|){X2Y; zboyjRbsWVQcZEJkrhKEi4Rj!;K3i2xeRe?~(y7l~$mDp8GCebe{5a58!T-r)3w#uI zBQ^pLRWWT?74=0r+lq&3zO>u$)q+l+EGWgh8_J#+{ASQ6p-zc^0G)6_H7)ISREqa9QoIMKzCrm5B)?iH`ITAnD}Twac25&=!MJWE#r0(=uAht+JoJ+u zQe1QMg9Y?wf3aDL>t(PB>GYpJrMUh)RnRAbJ|azE#j>D8X}5shSBmRes7KOS zr+cNiUV%C#oppK`{zFV(YO7-UQih5d*S||KI~KlF4E*$^nNo}wm15jd!WNRv+e$X? zuG*RYV3VoGc&1brqoum&F4aXFsVaVpkf219 zIWfc|I^NtTKGDv@WDapPCH6~-PYCgjPE3rBkMoNOi;FXv>&J#ACgE=GRJVaiUeV!+ zA>LsrG0}1TLcE>2c;Vb2A~C@n-#5?uw1QUYr7d!*kzk66afvcT^fQ^MjGsBak2x&X z&OJKDlxSCLV9VyUL;Ov>O=eSEgvrh+G0_wo9usXsKG6~8_{8|$Ng?jwHw}n4_X}y@ z;})o2r8I5Oyg}oTfI-kYwt=fTY(R8ep9YaJF@@9eS)~{K-_#{6DU6B~``=c?CEjeJ zBF40$R_Rs$drlG%9h(qiavK=NQ%JTe&0+owwn}T3vyQw?Nnw#NAAO~3bX;Wo0Lc|t z|B^eTI5cR~pjo394lP1r6C>iyG11{HY|XA#X^sD5l2!MD+#21j(pvqe<#vmWq0SXU zti=5fY%NttWPB22g(ODy3-L+zFeSN% z#l(aoU-$T!NVJ)_mzWe57a3-bY=C^tVdg<0)S^j9cye@1q6QO?b&|u#a3ZacReJeM$)6t|8JTw*~$J(+Nd#W*qTk4TO+#U)WY!_2f&R_P7@Ip*^VONydm(P?&8 z=`Q~;y}HS!^Gz#fmEPi?qoJ(Z7yqoF&>|u%2?Jf$t~-OG-9N^5{-!YWA6?DS7{ z)g>$@*%X+J0XR*SkXF_z{ojnY|4WJmn#1A}!y*`viBv6=Hf#8g=%xar%!o(zG17op z3rib5y=(IVmyK5I%1*f37O!v&d8`*2Y)v-raoUJW%w`!fabT9pfLSF2W{?acaA5Y! zkcJ~wJ%~x;J@Sy3X_%HWC@aw?)TM))OQ%3Le}5-WpHP1{KVSdA02e1OH`h=*M9*V!aCh@T;rx6(eF6n^cMEjsAQJ?i zQwRTm08ekFNFBNgn!l5)r>~c%w`X90TD-2FKCZ4#fliH^^S6luf15YuZ>#41PCg!P z?qG03t@#J|xuLdb4%C~!lb2Vp$WuT`2^U{)Kc|2IZ0 zEY-P3o;-azg*pd$dbzR&-84#9Pk+>tzb}Fh?V#EcX*a!{x`p~V1;dc8p5%QFP|l?jd`r@em5Ig- z3W}(eZh3hI270-L!qGgP)Usq9Yo9qhUwY}5QzyCSti_KeWdE}hGr7+W|7~4bG|8=! zXKlx;YC|LCXl95r#Hv?~aZWUt3=xKSP$NH3bq6+)t(IQuB%Ur3ga!?z?Mzj*oEpa4#gcA+PYFSeZ(J1o(^?oR>;uQRG zX(>s&o70x^-JF&ZcV#>0q~vaS^2I9J4}fNo&{UL3Sg)~xn($YYl~=SkDLGR$H8lNT z3BlD&Nta!(=Aa2_!q2kTIsGiBuaT0QO+pR1*&-Br zm*sI#EF*qpnbf<5p&x!58|aDjC7DJ)%ub{BESJuen>RTqQ7C?UqwWSODMY z+h|gvueTvgrA5LviHOX2rBzG-N4%jAe#4Z=K zxSOa*O+wzRfj+oO1Y%6bfZqgf68Z4z@BjEBmw$Yh%NNf4Bj#a=gEYSQt;B#e0cqtO2hB_-h*JJHqDJ1jXS$={TylqXRG-eGZgonv;vy<{`f z@r|+aAP%$e?>+wTI$tppP1QujG+j9rvpR!S%&Mz`gEV3n9IRfZZHAG1O7L>SS93ezrbG-F27pjOS%D=c@b~f zEHL*4te0>s(iR5~*RHhgBi7AwAHfRnP=E3_zPXB`6b0r!f(}!J9PT5? z!djQopmQHV779f6{+(&Rq!j~m%13tD7i@J9P>?4@4PGIgM7%)+k_c$=uRI@4D4ISeUG%%gAUtk!FtoR}5 zLqKO8aeu)~2``uMRtX=Fa7p+l?a6%v{UMWfV|`^wJR@LFRI5@iK`0CD!+ivf!vy9& zg3`$Xb00yW@d9%_)%gs8xxQ|U%AW>&7Hf?tX9RG&RRS~a3ab3afGtJ}I@gR1QZd&7 zet{W1rsbNkWorcHK7s-M!X{i3*j3WgS<0&7xV&-*TD-_#MeYFXqBTd>zNd<1lKRy0$RvV@=JPdbI> zGJk>@B~OoRGb)`heb-Gh7a(S>m06y~8cm*l=@jbZh4~sx*|~eVdAWX=5rQXiqR-z+ zON5zUZ_JK|Iy80m4Ah7|oHpi^P-s9`CqIpuODWvrS}kjL&p1xPMEyz5ZcKtSeeH2@pVO^l}UT$#Q-k-oM0_&h8Jfi*X$Hb zpau$xGCL|D5-ZcXPF*<@OQ;GJFHk(agZz0*oV3>|AH7|{I}PRSh;|O`j8`je{yvx~ z#WXsn$JI&TP#D|8%a;@0A4td*Rn21ixOpLWC106>`~xsU>>KJE6o^UaP+WU^;_U+_ z1=ZPXOb+@7dO|2msNL)8?+Lfa?GEVP8kZ_TyQC>yg8cp6d_Kte=u*p4&dP;vS2Pir ztakE;Q+sIyX2;sV{HCi$Lv1oEnp?GpuRmVl_~amnO7g~A9)A}tv8Dnnr;&u$xCS`k zRS8}$K{OQb?TX-VLe45#CgoC9oa*;+>Y}~c@WRZluy`&tM&6uNOR7|Jnx4uFm4HAf z;w?c0a}cUbeb*r+3-v{)`g^+K{g$X@#egVm7kB^A4neM3LjZ~fy?hZ*YWo1ws-j^A zM8$??G<#fw0^3Zm!2VgL334E5oZ2>MzM#DD>)`1n z-h&XRW(pvNt(4a>cp2l=m4uI9S_b&~1>$v}7vFz$Rb_Tj-k#{CRA2VE{TsS?F{d*_ zkDN02`Uh{n*hPb4%KWu9)6Ji)koNjcd0W;=Fa~zgb!wtSfl_MC#nJk? z26S-h$b%uO}78#83#)`Jv3ZJ*_U$`wUKmC2Oz$XiQvcM+`e6qkN3w*M` zCkuSCz$XiQvOqQqq?OH=uXN3t7HR#H!op)r+I9|COfx%VyU6c?DUU!myFe#rFE=~; zZ1?Q#Y85VMhd+C!^Nh5&i;hb&;XSThf;l=C8{+KxnFiU##V6UtVLM(ul~>ssoR}PI zZxw< z+7->RUF6NKTDE&RbxR2|M?{7FUmC4dUhC4{H7yL-Kx-P9*gpnOpP^yNN%6`xwuVcp zhBnT2iMMRZ>pw%EJo!r3uWFHIqofh9M7XouA(SPQuC3JKVG%GM;O)5nxtpE6#GoXw zw~LRzlJqa&u&1&Iq%K``L21wQyjyE^EW4e6Ig6FHqF{$SEZ3Y;0cR za6=>8=e#w__?Pj8@u~5l@s9DP@v8Bn@vQNr@tE$Y6mH^(Bfzuh?fpZqF^e{vk(f;Y&q4RcL_YjBA2zQpVF?_UfaDsj>>I;qLTs7zM2l_; zi$!;z5{-S7p4nJ%;T#PVc1nSfQe)UP|po zj+DGXk-4UjEhz~@62T521S%3lwP&mKj)`J$uCPvRT;@>}raL2{W4_StV{UN@t!6$t6A}2BS`RkB>{DI^ammK>M$rE1; zGQ}lE^ML}H`i67d-YG7AKpYjEip2?*o1g9 zeB>jtXRIKD)x`BX?#lZjx7g?;T8x8lzCVH!B2z6pwu`_i(HJbd4P<&>Md3stOuG=G zkfl)88%t~98i`4+rWg~;&ia$8L@jl;NXd4gdUx(LEmpGKRXsO1n&Qn^X8GZd>w7z3 z&9n_D{Fc{1jGnQ4&d>%&0O*x*ZiS;47Tj^|A@LaS5R+#nFxPl;(7hHvl~jC8qF)8( z8c*_=A(QKdDQ6sTNfrNuw{N63!0{Z|Ud83`hK};d-vF3865oM76>;VZJXicMU(y#t zCfAk{TOdQOizJQ(Kk4L8mD08YKg&)YBlxwnNxs;90@f& zzXe?@V*vQ^5>m;FGOFTm#9;ycvN%%*cS+_z(79Zm^m;gqI2>_IfqlxWnA;>YOkG)C zM;xV5M#`i;8%fv$X-Rj)(M!UEBwRznKLXPZ)WH*SxDJ#uub^C5E~?NYpflI)GXH5( zS>}V^4m76k0Ukc^l7}yES=Wv@_JIe>aupu_dr_p5{}A%U@=k^SJ7C(mB@QFyf$USL;D%-IL!QHlaOf+Z_^pzr=qQSmU`bVb*g~9F*&X z!x@JQ4mTVgINIZY?^xPoegTw}IRx5WPe(0T97{)9i=*kVkj0U7WNUFajdu^FCE)i! zS|on=r**^c*JZt_FTyRm0D7d;C1Df}aO=__@m#=O)AX z8h!t2dHh_VSLCJ1`?D?Rq8ORp*M_dsjB(L~6;*?)m+e@^6vrz3Q0zNp^Ji{1hM=DcGlVM}He;}5liTCD z6_XofBXNhja58}Y-i%`+O* zL`5R=;5JZ^lNmT%)k){$_ENDKH5$27vq8D?$0-|0b4p4Cx46eo2*fB7a#BP&V^wWp zkmlo3{<~}1DhwN7qo6Oh(26asAIlLsaC2(}_@fo8e$11IjngJ&J1omf>o9NHEdp3e z#jUd3ZkzCdLaQc#pSDg??9TfiOD7jMqsPM5F|Z}=&l=BZxp2_9IX43TQ4enR?xSq; zB`<4&wbdK{(GSFS-j8$pxGXtS2yYvJyv&N-xGDH!DY;oKQPE1&CoL{?;8>97l`&W0Oz{m27E!inJ$00Xb zh8v}GOG)i=)|}w{SGJ&BdQeiXB@s2ReRP9*&~Cz8<6wm(T=6p#w1`=e#J1pLe-v7X z)FQq#U(0!iwa^DSBtjY^oE)U_oUB+u_*Z{iaof3QnW+B&@QFHMJu#(-6xq}MzGc(y z{QEYLC8W%p-l^Xa7S*rimQ=r|Z?$I$wRV&?X3Fe$b)Ta>2EjhrJ(DToKxcayqeLjT z^$S__*}rRF*`CKL*3B)h|MlIR{uT)h*iNzijDS}N4r&nxt-^4ZwMe}fMM=13y;5Vj z9n|l#{gm5BmYn5GMtVwR?1`vk`E`o0v3{M?{wBl6QKeJZmgKD6oPNy|w0E*nPT{8? z`+oLP^Dg-rL(HE!MWB^uT{FIE2l}#pol|qRzPYt*f-dS@#cfQ)7CA7*7fPFg?O& zgi$y?%nMx1YIAb?il=Y+5Mohqk)hxs@u?M#w-TXKD0J(MUye6u=OiF{BtQE@*&lO@ z5dlX+92E#ZG=G$yGDUC5Ry`RxvBl%(dBm@Sa%OGvlQN_c^TR3{ZjQMi4YvfMUaY@R zAX+F&k*iU~XG7QmvW*ub6X9v>0h>rvrsc>+=G1A-U$mpNEWJhJ6fG+ClqoE?)*1=_ z(msVkIoZ8mODEfTkdhyzvgctM4b#t9(!n3{(>X-183&JGA36ZPOqsJMWzVYhORN!k zq6xfWq{kLe#@YvmILe5|9saU(gTPNt;VZ&RX$7{cqD& zsj(tUIPfe*A zeOJ^eeM`Pa`>{`>BzkN1d-2eNJ$zy|y6`IYcWh(j6x5qkdW}p^G;j-B+qPnXgT4}*(qXNB(&H0_@pNKXZ9QsNU8ZTqey5b{ENAW zyhLq?v4d8}ysLYz&`7hjc<$hsSksj`(MSJJIM@oN9SC)bOTh7R4G}DS~b3}_kZd#Eg(U52_`TQVaj(#EE z6VF>oN*%C0)Ov=$;}TCS?1RPZ0i*b1d6bbeA4ZYZ>i%6Wg6H4o!5)tqh!2~|J(zBJ zVF}@BI=}39A8VdFm)s`*eG07yB8RZQ?x*^wly$~_kX+h*%BKaBQPZM7&3;$(<=JU` zCS_a7Sdk^=Z2kY$UD1NEg%{%}U89fXagVLp7?&wdrEj5x&; zE}wj|-=!akewOqU$e<+c%n~Gn!Y3p#e%0?VPT2zK6w#AJ=E}{w*YaUG*kg*k#3)g_ zhYydAHvF?bJo+~ui?L{u+l@~j9u+O3XjQcjtbY3N=%){l>K^gw!=oIlan!;1_-}rA z)RK??bLDw~u93fcKIwaVD{1({ItDcO`oATR1w01FSRCVUjK?tn$3z@lMlu=46dY4= zOv5o9#|#`Zam>Oo8^;{XIB@mE=Qz6KIt9l790PF-!oj5}Sg2tbii0Z^hU4Jkj#M0J zIMQ*9z%dd>24pznOdbC(_F;Q_di}m?PN(GkWis<5bRD_oR=YnB9Y{%YkKMDYMAXAa_O0EwhaPEd5p#9Q zs-?G*Cr)=BJ+$yZkHJBwy8AWBoHypD3Z`o@eV*mJZ?*Z?Q%x%On%QRA_$6;^ja?Ia z^YNpbc8!n!lwo(Lakd!ZJN-?R^Yv0Yx0y3Wo|@phcIY|l z_hbD^miJp=yZ(=S7pvY_+F{f7Rq5BN{j{yd!itTTj+yRrt*1*=rGdYnOl-ezWsAX2 zF3kGkU5(?NCpop5(dEpb-{a<{_iZ?}R^4B1x^7%;7xl>J^DZe{`jyH*XWM{p2VH-+ zdZ+dB5m%jNytZ^`*3ve(`P|@2pFOecWLb6Ah8xqSO&c=T-G9A9tiw=?k&SA#y4-P| z_ndk8+daG5;N$~i`z@D`gg5i{Di}P!K!BBl`TnbArzfwAJ$pjx|{k4)ZL z_nTjy#jdFP?8NpGQBTw7O}yQ=c>Y`F_{`{oB{v@YzL9BOjcPl8S^DHsqegc+^jqoE zcmK~Vo5jt1RV#YJhJ~X8x2`Ml-SloNNBcaOnsp*y-?uHcja_!R-=(JJPHA&4?ryWI z@z_6Z9-Fka#=y=)-q?kV-qO>)XVjF2@y-1ApRD)rLHL;a)y{T$**D`}n{MCNxIM1i zZ(ASUJRduw;lwh@KP($pVo`+y_EEK(^=Q-JQpHZrlYQ%cd&i^9gtlwjwkY9!b6l38 zeDIQAM|^p)b^BSxyxPs*-GAq^cgG4pKIU3_bxPOPzSFZ7b!dL)oXz{v*4KCW?;XEv z-~I!w{F*e%xZ3w*z1f>umFhR*+SDPh_5^?JI{L+qYV#M(9e+6Eo29?L3AotOy;hx= z_mBq@mj{KqUy)h%dYwvh&hH25f-&g#(J+1LlbMUlj$9s+{HTd4_DR++^n;+OEtMbWP zT_5fA`0<%X&p8$I<=Hdsc*-O5#pmm@GSU|Ax?;VqYsj`Ht*RysUiD3o-OUD8LswTV zdGq1%Gm};{d>B#E%_Z{T=cnzeAH8wSp~8jyu0=-XFSgys`%dh!acAC?8&PD==*9;Q z6mI`RK-G;uytwl=y!O1GXOHVzsQ=LfyDiB_PIi3z+u%8lKihXmm>b-C-^*Xe&0Jrt z{MotIS$jY4(xU3K<;&Jw%s*%Ip`P>IeX3U;QzG){<3*L;|6F_QGK=l&c5kZv(6?b> z*L*+s>iB!f&YAD3S6cD=%sKb(jkCV_)tWn5RWl2JH*iMxZJs~wc;Y^!ti$FXXZkIg zd3wX6$0zI$-YZ_g?n%$@f~}wVjXHDV&fDoF|8QDtY-=3fsGZ;Q9y15u4m`2*_M127 zZXX#xX4jOyBfAz@zWG@76HX^Cf9u_HR)Mdr`@C2d)OOXZ46BsMuLrg9dswewwat+= zDz?Ap=~`;#l`H1{mj^qH8B;Isz6xExnPl^@xz$b6k{(-z@2}Rb-}QL~pY$FP;y=mX z#=q;LWwk~+R$ef=?aJ2nMSiN*Eq{u6-HrLP%TL&xc;#@xNb|B@!H(6lj%UOjFJ|A^ zD*u|Z?|vzEck2E4YjLxtk4%Ybe)v?%@)v(x8q?n9?6ANu%Lmo??pSGu5ziwdww1H5 z>=M;!?H94rO7^^$@7w!3wk$aAkkw;R-yVH$-(G&=-re7N=1-q&9QtUJ*D{*|ZW$HY zoekS)h_hc8@9fk3d(V}g6g;5&tKT)mxvyBTby|BIc@Ham|YHw{Ct`ZE_S%8&(xx&>h>&lIKKbU zYY9DCjjmd$$-UDvty0JSIe2-EIZKT-pXDj`B*puyM)PL|lw5D`dE71x$|g2QHRUd&(z$!|4{$r>CK0S?;n~GdaJwJx-ILcySnzV zEK?(4z|(i*dj4VE=iHkoRkvpxD&vyewBMa`t85Njy|Ml0zs5b;`?b&R*-n*zt-RpD zj32XZrZmatxb?ipnLaUX-A}v-9M;`w+>T~e2^`r)5v8v9Ks znpyOub?0Z#ihnb6XvEBXw>vI-+uy@6@0*&L)wg-A>u(Vo`@^?Ef6adBP-p&zWDifH zp~b9k(qo?=dH?*`%DYbwtWUdt#ttf9~+ean$yZ5~ur= zzO_4jQB>Y)2T{eDX)clhVm;9J-?vcw!BFft~?-zPuto86WX9qg&HYZ-PKWeZk ze&l$S&)rkk&nx6#a7FjZ=ayU>_VanCB_UTHjQ%>X=}F7TrQMspjjiQa<4WxUqdH9< zKDKP53gu_Vuc+94_-CieJ*oQpt@agHlw4lC?a1~6_We1dq2-p$_D5X%1SmwRlp?EkFMFQpy_uRhT% zbk)+yRS(2(-d1XlSK7l{n?4&=qpEGm-fw*}!u@Vsig%qfY(>4YFWudrWQ`nmtlG(h zaz`7yE$uk+mEYL%znA)Dd7c&*l8biv^QZO?)`Xqj;nCG=b)n978J(?HG=G;Tvs1*G zHrtBS?`~7?aK5;=>x#esyyBEEzZ%w~s_&8^2|q7tIM&x(d4EaAUw^UcG&X+Tn8yn) z6$vRi+@a8xKMt-s->*Q+C!J0dne_O5{q*7ZG4S(^nm zJ4O`Rx1d+T(HlF%S3mI|adW}DX=S<%n%d1Gp?}}!Edm37%v@;IVaI}=2d=-Id~B@i zuo;e}Dh9`38Qxz>n0sYB0NZfRW6&@tAlnCIR01uR$Gzwv1J z=)D{BM65jCp!9|@>w5kiIk&*F@aQ(JqCP(nGRHdh!mrJ+_daK#4atqh`H6 zeC4j~`m<#wcD~xsT)_EJ=lAwc_Y5hQS@V6sm4V@p3Kop)-OkrDGf$m7t$Vz@A69q3 zv?5kLmzRFxQa|sQx6S(GEl~ILt7Ctxw6`7Wf4@P?7L8BM8CYZ3FY!l0iiQLyKkB{a z#_+RSQeV~Wcj1n8DXU+Mhuq6tpMJDP;S%$g_V$k-`fafc&(goyq<;R@?mdMEcE2=t z?aGp^%t5IwZv9emjh98`jYIQH?`PcHenq#f?F$#M?mRW)NTcscUii~JJ$7HM;$8EX zcp_EZaht*Zo$^ly6Ja_dEMH+Z9y) z*|+(w-7V3}zs}~W@rHN5&&{*>e*gGWHEg=f+);c<>8S_5FT1e9*qN1D+cZe&TmE?c zCbQ2M-(t>Fw?rFBl?rB%VCGl3Vo-fLkuto^&I z#(IsMmyViWY0+bj&KxtT?w!7dBTFh5I+3#E-IkDQUv*x%yOgEvvpVq; zoG*l2T9dy~$Bol1Qro)>`EBT$U(1De=&;o5?8bR}DlTe&>E4!B+e^J&mo{X#Qy14- zZfN`JPuONKRdO%9I^gB3;g+|ft`%RnE$|1|`vJ!?qV1R5TT@`-?b!0harV<~+Kl;p z`G7Mm!fsreTqobj!LvpdJ@?gtUrISHS#Iil{MwE>VSl)`FZp&}(mv~jKC`-ae{ywS z0pCeWDs?lxI(O^kFJ<1>nLcyWn5W)f`R=@Ra{j1M*JhkuzPf*C#qR z*qrBFNVi$*yRRFNP`&uDxWikI4{WpcSNvmki#v3%DG*kD$k_)0>o;CMy|Ce;OLc$h zySZ_I<>S@eTEx`taVogBeUrwQA{ra7zpnpc(n0(DK|Zw_?n<;Nl9Aan^OVOymkNKl ztQkAUcG1SFCp+gYzWHhVp$(1|jMriZr?%_2XWfOp?+(>lRV(AqJ?jTNsqW+V&9v(S zPuHK`^;CU_Zp%Lp%$h!OdBgl2%xmZOJ{ua-@#eXWE6P@~O6nBUZ~J)bM>_@wpNrjo ze0?wLuMgL{;pARFD8B!~uA#rzd3!MC*N{zLG<2W$WeK+)wtZfPUtgTD{N$;N``cc- z^ZBu&;|}~f;_c>zg+>PN2)bW0V@bmYQxhkS56qf3wc+014sUq0xJitu!t2CckKTA^ z^#8G3=S!A`GKnESPJU42(%k6KsZr*!@7EQ7TkPq!vTu)Fy+6(6>di0nS6F;tZzb1x zg$i}f`21d*3dwy6@B9m!4lF|OO#NZKz-4pg?tk3L%V&DSGOR`}iSq-TOXK_oXD&#t zhjSU6w_-Ii7cSRV=?!q^Mh9!GRwlia_#T z_}|b5Kg@@lAIR5Oz28*5-x_D8Yp0&ue&tH@V{XKez*vH0PM;Mo6fjT`|nlx!f~H+m*772_yX6s zWjKH{_s>)Yo#pU_axBMc&}qM(pyPkTW?b|BPdGybLl6>E&T(9`JXW}7I{rHVOU2H%qJ0N>bU`D-v1tF>KlyoEN>Rh^cQ~rp7M;4!*oNyN4e)!{uwwk-?uok zoIxsI2c)N+1|eVi(_oybZyC^858Tto{I}xFeNp#tX8jJrnfW}%ne|dv)u%ho^b_uN zqrFF{eEc^QNKeN#^;&>4uQPF`-e+)Txf_Cy=Y_bY+%-5e9~0=*zX{IN#};R%d#9%J zQ0d%LNc%j(nS8}Sr`_`4%=+QKg~0nYab|h0gO767<4nE&AFj>>-m2+sz`IguQYw|^ zStUcINKq&fLI{Z>Ndq#5lt?6$$UJ5!nKI8Z7cwN0DJerCl#mGD^PIch@9zKEzq`+S zp7oCFU2E@i?xk}cN&XkoPwTrC*8d5lbqvH$yA^4C4bp#HREK`L9+%KO`};QI#`WJa z`Y(_^Vca-<@z=g5(*DdtZ`^%h^F0P@=VmkBz0~3Q{(?VGvp3O`Dr=73{;XqAxh>N9 zEJ3eb2lV!9|77T;fg@HgHj#+6;M^ZFb}Q2V}B(w9kb{>0AsTf@%x5Tt(9QlAb(ny*E&uZy%FvzeTB zU0_0H{g9XzzIVcTwTG?eIHY-R!N__~PUDr4`fZ6c?;dGf2R2y4!aJs@zZWi z(zig`rzYgH4!=jnb$Xt0ufun+x9+L1dCy6_jJWbxm{w<9a5CTC*rCeaLGqJr$GH3M z8tk-xjX`-g#tZ!?pMC>V-dmBb>+{&#r!Ls*cO`5+zoa-~wy?$?pd2dLvIuccO zC(?XViL3wT#B;v$QM%46ldQ?OybZzBpN+l!IGu6(bq3NppF`S@j_7%s^+fWM9fhBD zv?ZT*b5P2wkjX_E+I= zJ=2iJyBewf^JKp~NxxG@yH@0}-pw#S*(ZRqY|8&*va6Be?Vsv6hPtd{J$m!hhmF?( zKmCVbuN;iDuAPzEyC|4u{}D$n1M`#JnYbcgyspHt?pqTN!%6Od9Y5KwJQ%+XcE;HX zJOBA*UB=zl)sS8%=iukMJ&7LE>|@5=XP+YFqmlai9WKUyFLB4jexHl=-^;ji0r9lo zHR<0;@=c_54^8?mY5buiPeJOpTVlU2$MruU;OY-p~-zBbgPr=G3k+^2Pko;tecyL~~rtu$9 zI=(+~wciuAkC!v3`~hkIXEAP^6+Gy_97(F|74*tVuy(g0`N{5M-1)tVl=tSr`AtAF zlyyw`PD%O&j2rh!q;>e+Ovd{cR_=o|&wk181K9aDPWnfY*4r4por1$Mjp-=HnM0!2eBtJjdjy&l17vt957JHs% zGmz@Ho^})j!SZUk{2d9G0BUPoRs7xNls4kQl$6wr;*P8pCs2I zozEPkb$p1l4@;>>yY)!x{~*=742em$A?X{XIv-1MzCk+Ao6(!^d!(-ie<7X6E9jN4 zCiz;DuOr>xi;-Rj^Rc&&k08yzGkL7%XxKWBO!3xWFaL~m9{VxQ(`<0^`wr=R1|roD zN_-pAc(oGmfV8d#Nb?jUxz8{0eIT2~zn~=siDaqkUo}A^we&)nAq5G^F*{MsM7?u=4&SA4u}SB)3X-yCnH$8hu7%)=9E%lJ%0@HpzBL?wMrIB=<^k?<5aM^1vhyO0r*) zha`DulKqoBEXgC19Dt-l$NCtbFL3^wn~pm1ntL8&e30*9YqC)G*zWAK4FGZ^V4?E+Zi{A0=$*i{H*6_2K8%@>NtctoY!wD@776QJH@>(#eE59_e1~WcQk(9+bU648RX&EDUU#6 zlAVja^SuJ;_|wF*uEEsd{LWAPya&lo_C0>;XQS6|8Gig^S0w#UNKCS~Ff#tfDc>83 z|3dFP{cc6|ebRg@z{WcRX?#E1NA`1lv|EWCs_canuK~@ppZCJv^Jk)To-gBU-+JPt z{!xlE-XZ9n&zHpEr|`X&jz7YBzW{sX&5Uc` zfH+=%Gm!E(jLUPdbDv*EGV_#&oktrap|V?$);$;Ld|DvQ(-d(1%j2i4fYj~+`lsJd zNUxjS0r@Q0KGy*BA4(kOdpOd+k?e!szfBEAI-f(abADT+H~#Cyx2}2U%`=Q~;~j&v zuJcl#K84Nq686UL!=$WZIMVq&fL=ZaBiDak^1lOn^`{Ysr&%-f#vKhS_kzv00(a^Yp;p`1>Y(WsI3h_C61&va%#K?#l!--Vz3l*B$%9 z{25ffk>moTb=Ahmy2=sUy3fMid?zw)zI_-}eR>24n_|p2hC%E4o(E;~R96M0^PRw;_75a|wUqaJr24ibG2g;u_ZU*%l052{ zV`rX6VC!j_{60gvo-ZKXzcr}CzV4CaX-KcP_lT$6vB~b4q#sK>$A2c7b{{d$P}UVT z-Zx0&HO7yh>~kK}Uy8&uyA0{Peg&+vKEfW3ZB$If_LW90ayHSGm$3e4;b*?H zus6>JoV4%9xbtnD#-By%w;n&^AA#QZ|G=oS?ErZd`K_legVuRyiZ_mNezG>O>o6U? z_Qw&&ymJBVUq+huZKUHTjedP>T^A(`WQCc8_K zzE8Xkz4IGKUgICcI8U>icyL~0kk0c4{N>Zr_!&u_iPZ1h)Q7QY+|QEJ{=6j5N1A66 z(*E9&;#~+kzjN?+{8gm$S;x5b4y7LN>th&~ZI*Rc!r%Fwg0xRJVDIZ%Ram=b%**^& zF>XJ!@Y@bO?*${+mgIJ$vcv~Gs#&=-j(FTNzO}hHq!WyCZ3b{k;L~UIXB7slYAh_ z2b1(O*yW!z4w7yPx6w9;(7eI67XQh9t2M^YC}iEJIrNCnU8WYcbaD zGvcAjz9XM`Z-?#2??`^Kj|eVTyTa(uObV2{EW8%Fy6b=XaByy-@Y$LTK_15I?ts@=idoG^Z1#r`Y$1m^Lm&; z*Ka(*^xuJcFv&jS!MF#e@o$mZk4A4FPa>XnU-F>*iU;%6BA)%c0KIXyW>Eb~9`w7I zx{b4raYAJu!Pc`Lz4N;kKYp^`0rk7{;Cv>*#%qF~T%A1L3#wu4I@LtFe#aoq{~STB zzXf*A>p=X}k4*KAL3%I!2gy&?06%`R<9V>Je(tYzts+0J*;W`?Ukk>a$F-@xZBRPD zUwP2}1oZL-9-QYj7+c??X&(C#$9a5*w65vsjb9IE=i8kJ{idRK-3F%o*QGpv6Ic6} zlYV5X=Op43>P2atPcrWOPGB;^OC%bagWB=!+`TNk?$ zG5&Gnah=ah@y|u?I!-~Ve?Ha6|I}6J-(KY7C)*l!e!~IhRVV2WN7|pMX&#rMwEou_ zw2mVfH|`D8rT;|6t@AhH$On;EZib!n*&aK7vKM(^DEkVs{-@3b@bRShmuiPT#*&BcDkHO!1 zTcvs*fZY${iQ{{LFOlwt-;nN?7m3T$tQ`;Le=p6q43lvkj!kx#!mdMK>UKWY5|`B3 zd+5zuCe{BOc?p>pZdFy{A9h*TjwDB%(DpTJeo0X9lc@mJ%Mz6o=WxC zOLf0Ya8%h|JlL007`GpTNp2rok=MSy0IOe!wBKuy=9_@M@f#wI|2#!G{uAu{mlM}@ zdyBl*Q=f6`ol9KrFFRsyzYjzj=U3`cKMhuY5dOw#2-}B0k%Y*G5swlIpTBM&TQY8c zrem*uY3kPj3^J5eWKe&V`t88D{5ewpeF5_wiLr5(Ccm8+_q|&!oP7Pd59xd7b~yPS zYG*eOp+ayXKoYy=PHy&q{^ zwNm~gNM>Cx;_vuW;yRy)ko;slNMii$Qr=G3@sm}7&EFMpz7vV(`d^vitYsaHJ2l0x zobvqzJFoMo!+tM^-4CxZX#S?e)$d-$jk_C3%(D@D`!k+#=dqgN3ic@74}0T>D%%I? z{HI`F*q2EC|Hj_F9m}BlyBX&v`-}%%GCyNq|Cf-~*O@`%?wahUVduOXqtt#t+GlN$ zjO>qec<^Jap&Z`NVwb#pM| z=6xDA{>Mo3Z9tl*H+h}c5}2QCM~t=e^Xl#IZ1mc1!Jzx@81lLA_D*rXPW{;fKl9#* zw7+lTZ@;HwZ~i~A<0reD`UsibLvvAO$HB&bH`QI1dFpo$#>P3CyxKho>-Pr|lWbF} z^L3>DhvRSjA9!%yO)<9KvW&ZqZ!qqBU&3DhHL&xZPo0i;P4W68`Nm* z^M0QEw`ZKtSts%_l%0w+e%Vyd-LQGu@u1%djEw&m(!Nx|-@eX6-v+rGMHcQ$jC=ij z4I6(9brLGu7rR3JDefOg<6e*6`CUkT+AV?|zXNGqfAHWs{)%+J-bzsS>oz#~yX9!4 z@7GR6x_>7iyIYR<5TGR`+N%0{rDl$eQ;jNTbDXrr%~8@o&Se)9@}DP zotG;z~^WKYI`}1M*eUbEkQl#~^L~sAk zN`31`-^_mzgZk}>o|zB!G5#*lX8DEzliR$0JmdcF=h?~l*qfD{l%L(jgS?7U_YZl{ zZZ96}%?BuP$vy_O`+-xw7(eaaN9y+jHE90}O7~z78mj$|oXWMFj(29dH#900)`R|qH{Rd;#xt4M3?8~@ZFV)u->G)kp>wgSs{jVY2qYIG6-I4gN z{WS8r_Ny6pPYGP{cgq1e7Bl=cz@ovW0`o2WU=VNajm9f{q0aE{M()_l?-#EvT)P5d}z4Ka+opEkY`8Fbr*N}1R z`Gb1QyDLs|2c+|;j-7QMhIAf}BGrF|pYv;;=F=eQ&qXqn9h3AQV61=Dr2iRd+(%PA z7bDF(h$4+UJN$4m&b}BskM~fjKPBngGw!@w5YKt+i*$a?(QDrYy>TbwWIx^{n6f)| z>X#(@wMgSsNOin}G~O}z8}A47#`z8DcvtGOpCgE?{yOZf^Aeg-$cHpuBL-1rmnXXp z$-f`cI-W^!w;DLFEhhneRuWe$O&4@4b4cbI9Un^%|?`!03Nbl)2N$x$qHqv`l{UX?H4EeZ__-lCyw!UVqEr zXI-PyJZ52M{PM7I>l4pB-6_&>zw67s-izM#{u*iDt5T2k?L<8L{7lN*oOr0R>+!QM zSEW3!AW>znCVn5ic9j{_?h7QLvi=n3ymmovJ*}~~p8t@}<4o+_2M4CQjzGHJ1JPUG zEd+Icv>>SKeiPDq_rgwnFQohBY^3`4lKUExnVrPA~CA*8Tb3a^$bo~xt9@_Urul@emTkoB)_ko|0Uf2I3 z&EF0`>%SO3>#9jU?;o|O%Xm9rXTB%NZ=Ny)HU2S3^#|jx{-0FGX{pXHX`20*Og!gt z332p$3hDfwMH+7f^;zfB_&a_8br^Re{*HG~`PZR${5RrblC@9zH_^L3=cBj&e^5G~ z9yH&0R}){q=ThH(L~q{HiDNy#;fyLfmIvd^LYlV?ab3S1k?IHXAXnr;K86S7pd^n= za&VGEk{pUOUX3)5zo^qV4d^dF*~L7V_i3bd)v3>Zc1Plx4NGxOLOPFAQ=F@aqkeeO zpPb~VBu65dVzxNhjZWjIBzbC*rzJTi$jKh!yqfymUzfn{gDNrYT<1BZYhr6GiThL&@+@x!Vi~h zDT54UTQcbU`!Q&p^BFXMOCID2*efR!NBifoQ$H3!l|6^l|9PZ&+VY^hJI!|}_U64j z#h-|ie)nOd-@`~uGryQlyNTH8e=XqnBp$TCf^qHN;=y{BGH5;BQrr!xj{oq}e`@l3 z2x;Gc!Ct?oVdHd3dA`BV`Rs&~@vcbruOh9dE_U|wxs+!&jIHN7g4p*bFw*W+*t|Od z-uEs8l(!H^`v+3oqXGT4A&%?!8Ft=B_9eddqbb7mz7eT@4sp$Y7=DDvX7Zr_CrJ0h zr%3G%OLcZ5uJgSq*!fxYv10_pe(==D1d>3lyxs=t^){g1#%ewet<=M3WLcQwZPeTb3u zyuhIMgMIKXyxt+bF860X-WO_NZ=DNZ{SK#p=9`bd^J@eXI=eH~{V9^6>{N_#;V3i2 z$N0Oz6DvQNd`6i+u4a7jMU30ydpOOt9ktriZK%PTMy8xQ@tmRTXin!enbW!4!D%g* z;OCs1rQE&_I^L1f@qIY0mR{sJrx*KUVyZYuTmX*tK&R?)A+yhpnpG3<-wfRcSz#h5_d-y@~82x zY5edc_eYv%CeGIJD@n{>pFzhzVcdKbNn)OTIj!R$l=3m0<~^2EK9E!Ug$&wH|3??E zk>Q-izmC&A-w2=YAMUdxm8t0H?S3lL;i+b$WkHpviGfw>)W9&SS=fs6iAT3$XGm!S< zLQefAaytL3INc8mIIX)e&gT0BBmGa{)P4-7`(iw&<3p1ihBVGYocce{ssAEQ=l2Vz z^QeiFbv8+HPvW_DmvHL$FsF9EbLuxX*}sgmZ)GXc`^Ice?;|@i?tHr-ea+bw>3f>C z)V~e#IHdQL!AR@AmeV{B^5A^?l1zCfr}f{;seV1DecFn6*0&C6T@$F=K8)tHzGa-w zr%JMGLLU8hMOyERNd5Zaq}?r?`aQtu_&=Q5jl(Y>9#+%NmePjH!YmYSkSxD{gMVjZF z6mKlD&>y66j-^QR4n8azn7INB$<(&3+B5~~3V&=iq!UxbQ&*M~{pX3EdO3WVT zbpDS4_T?v}eK`~`PE(RmLiPlw_CIqvei^5BH*s3eg#?#pa2n@!PVMS5uKquy{!=;4 zw~kZ0`6!*|98T-MkJCPU%4xr5;Aej~r#{Rii2G?PoE@LZssHty+HdC6zYTu&DgLv`|9PZwkETBBDZ}L5cU>8GKh}q> zV?NS-`ZCfy-zDjy8FvfVIA7!Ex;@D0_+zm77gLw|-LSWh)v-6tT#{U*QuGzJ) zdA9|W52o?Qlie2Nar{3{mZuK$o=Kg?`+`%uZ#bP_dF)VSt?=h*_5!E#-v)5r zo09$|^6-<5$Jy~c7}x)Cr1saKbY8EL&v|V^>G+B09sd{U_$|qQ07=zvo%9DJeIJ5r z_c^EQT90`3kgbsRaR_zV=Y8mduaBo7-3K#~b&*dZo$qf*`+6ApocI3tJI}{qzhMe#u-Nt?Y}|dTKJZF?RP{^N!iCpQe=Lz_ZQN< zt9YCHs z8bvd#b2H=Szn)_3&k|1e<)56!`w_i$RKw4>jgaO&ImKCtsOS@Yp}P!2NJ|O@5WxcQ52{AmT}`e!-IA8pbysl1?>0?^l~Ho?EmqA zO3;Hh`ZcUse~DQ0DcXzStsPj%7Mk~sul3L7JM z28`MN^DRaC*+u$CiuBJH>ED2@-NXFv!LEUayaLYW{{hb1Z-DdlZ-QNW5B)1#QL;wC zm0{N?xH@c4ZISkM;3@?z*8|+Fh}*-FPkl!iQ8?u8Fw67*+yi!vJk;+8M}6|)uzScu zKB`DR3^t$jsUMYNKac739Q*&Pj?J;3$1*;#@%?XRlVIoTAy0+9Mm*%3V6QO``61Z7 z=pnxdd#!lLi(#(`4|z!ue+0YtJ=A|yq+gZT`KkW~c70?&cjSB6Yth5c_2%Z9P2BOf@A&VQ{m{3JO+;Smd{Fh z=PREB$9nkx)=Y*Yo;(GP^^>Q=QIC9M5zm6F7P`m%1pPyB^jCf?$35Yv;fTK%JU{6T zA-`6{Zx->paO@B5zk;KG@_INQ|4%sTS6}9;((6yI3O7jg%iF=x54jy&HK*?a=i~1I zSIg=9!ufiRf%E>uVPCU7j6VU+$D0i2>zxKyDKRhD-;~(()c>BG-p`Gh2SxXuaX*x2z=*;j-vY;emhUgpKLJPo)xTV1|2~|b?>BJ1{>?@Dt*4ho^@3U@z5rspZ1xLT+hl=c zTa)yd7ye%NL(&ItfMb97_q;8xF73Bm1&;p8wczSFn_q68V?R%+LyrAirJgzV^OX)x zY<@py={Pv9A9*Mo>nD$ZV?E@taIB|1uE>94k^M9{)?52q;JCizhu}sQ!y&(2WWNl~ z=ldLverW%75&sCs`l{au=jZcJV*97Q+>BDapF>;;j{PXtgyZ!`t_{caAUA;H{w24D zBcI&9$i7pNzH5y6wOj`{ofSp9Q)`N$mmxmkl?`)5o)KWj)%@8@U@ z%jy05*9bWJ=jUsk4afaWo&p=oQ@$LI`urTOX|VOFKN7w^r#}k5CCC1M^LN5gpPzGk z4;=SL|KE=}aMU9|4kHSO{9=**Ejaq4{sY+S#Y6t8$p42T`(NRhkMea_-E#@U?aI)~HxFXl8SY(6Qyfv z9r2oEPiaA+ht}{VU=2GF!1c6u>IZT#h6 z9mJ{MC{Am8iBtPGIj#8w{P`*LK))`W&ds%UyfvqDbZyn|!D-#SIqmo9oZ7iI>i6U{ z-(XJriS`5^s$t&0ykF2Q5K#JH!8sbzXscT5A};- z*V1_M(wx2=yb3nHhx|hk|C;kxzY%t?7|(yx^*0>*u{>P%!qWT|;Oek@N_)8`?Am$w znU)RUs84R1)B9PhZQZe^|M18!N&KHTTU$LxB2CcIrcL~d*;~B)a{pJ zztdt+;*6sS!B=#TsY9Q(f> z{8kZv47(pa)PFj$WPO8Iz|mjzKf_U{~zpr^6)cQ%Ux8me}k*R z(GT@?;MlKn<0AcbaMY*13moe&_kp9|^3ibAFCPaZ3Wt0$oX@>FvA*(CMgA`(cK+($gk$|1!|%gUzr3nQ z|2-V_s{b91`N(A_mEK?Fnnm0kX1H*uZx6d)tw-(vN4zHRo^b3xd4D+elYB_dzA1bx z9QSwm6xjV#mQy|xj{VXcz8H2r%`ab_^KSv)nX{MYC40;ZpC$id5if!5YuY>dPHp6lKsNZ7p|N2*gjk8*3+{O+H2a7Q@ygWqA& zqlgcL<9bqmaPqgI@-cACUmglKRmmYwf?JeefoH?{e2>F%{b>JM5q}6rztw*MNB`tC zu=~aN$ZO$<-yYrsNB#2VWN%5b|D#y!H+c)Vyh;wa5?rAK3tYX3w}A~~e(jsUQJUxED_jmIwV=WzV~EB^s^C{Y*m+f6OK->Kgd-Y%yf z2FLzae{y2;$)n)dZ=K=OVE2Q1`Rp8bfycpUhx!=|R+4L8oQpF7eju`%w2+ZS=CBHkUYsWFH42f}gBmyapZp904%nSDC!_hzWm%>r6JPnR( zT%M8G5Od*~a4nwOKY0#}C>;0mWf}y>YszEr2-x_(2bRx-qd)!| zt#LWMJQ?;LY5b?)>)_Zwezx?jaIBAff3n9slb?fQJ>&&&^g~_-M?dAYFrskCzr(R! z@}IDC^L!581Unb`dHC-f`)`u|Nvw^ZL-$`!{}Np0?2>%yUxq8g@tX1~Tmz2%CT|1B z{N;wQ_aO7jP2pI-*Wh+AqHw&qEL^#9*%yz1OEfZeB>?9DcSF?nOp<5*B*=E zny~iPBR7I;tK|3q?f}RAQSJ%H{ZHo>kU29Evm5qy4P)P?VT zx&)4VOVM8o+duu~8{t@AKjY^1#QHCT?}1}|RZEk`<`&ruf8uF z{g97_>*eB|4oAP$UkNwO=^rf8FN9PVzyCgH zYdHETH-qDPliR@254i^%>mm1sBj0kkf6iY%8jkq#2sq{=pI*f0!Li@fPe^*}_cI1A z&G8C&T8_VhuTN}CR>HT#vESwU;iy-B8jktO^I_-bA-@jC{YhR3$9qtD5uA_r3CwWe zP`|Q>e}H5D>VGZL{|(1}QeXc3|K;j%zMh(JzMeWoTtBh>GhXB5@AbC|ZU)Eo@(tVr zMidUYPZ1vqM}6v#fnz@MP&oF#d~Hz5#7&f@9bC&~96!LD;Mi|+ z`Ee!JkNM?>aO|%i;pTAMujNi~#FO`hV}Hqq74Z-_UN6<33dj89iADBT!Et|8e+?Y{ zly8OO^-!LZ*!iu6AA@6kDIP%HAB(^{DCKyrh`GqHC zFDRYg2DkQp42o_!e+%gi$LoW9M3H_l9P6om zBpmk#`EYT#~QMiMqt!1!nEpcR zrrqQ6cW~6y4PFmdFc^ot5k?da*?$Ob&0Ys`ML7I>z%^m_i1FoSaNHC2f;+;or{o^V z-Zhl_!4Yq7_~@Lyd{PmgS!6!}j(e8&Q{h+>`DQrY6Uz_7)@OeCB{=Ha2Yv^3KI-Mq zVb?_N1^*03yxwrxlS|)|$&KN#mpi}_e_wb{IPUp!U${Q8J@$i7gyWi*hr@Br%cEgL zq2GOYa&}_<`@$38xM#^1!xdF>$d|+R+xf^d;kc#`fNz4?dWA#28;<_U^I+%Wddn}s zagXu)px#b;1IWu@-$R>E{t1rt=?DJ<$2B0=8&Uc<3b_Lu@8RS=a6N-_$V1?`N6Dwb z)@MHX0yyS#FnlQ-`%}IFj`_)V7wMmX}EOUzXVV4uQXbV}Hx5livE| zwXpTchr)m4^!?$#;aJbZ;Q!#LU#>B-bpCP^*z4JNaw|CU9}e#f$9rzMH@qdb9`Zpj zqHxFqiuA|9u|L%x54*q2C!d_-BjD2#8*l)8PGWl|kI&g317DKkLGTqhJ{Gu*`CGsIMq>B(VEEmf{&;vP9M|&+@G3a=r@RS{`-5CxMj{>-o8lR0gmfeeHYmM;(X-YlfCgzf_vutN5K2SF@L#V zPCpVp9FFKs>rTvpD!ia*sTmz1Nodeg+@mRQVVq6N}^V=%<2k!{S>-)Lb?*hku zl@EaZ?=03QkA(f5%9_uErzAa?jf3aFaX*xwg&V5mke9;oHxv2CA}(`E>Gh$0n<8!t zGh8^-cZ93tcn`Q*j{Cw@b36d{^~L$V}wG>bN{cyyWpMvxL zufVZ?)h~go<@{H`aeb)&2F}M@2OH0RtN%Nvp8!`pwe)`dU>+5j?{4X5)SFU~9 z|8hGxZ@(*S|2(wc7mj|*hr)5claJ2nZ-h^TV}HtH;JDu9i;H+>k^P-8W`#rhxp3ti zKMqGd>gOl6zw%pfZ^?@-A{6DIM!QknAm)B%bfmZxIG;C z<=x=8|H?h!cs;lU-aF|nQQjYp^^ym}Tc!HtQ{Y%H`TQdLtKrD6{?;Pv(nHh2OY?{DObVe8lacKEWK{T=XiaO^+%jv}60#E-+66%OrRfMfs2 zuftJ~yrjtgi^SHW{=1z1PIw(0@8{*;;MiaC-#MNImp!9&J@0}m6>*Kk=A#S4e2l*f zTzcTjOWz%Q``?V881G46XEGBGF8w=$JOhr`e0d)1?^woM0562&|HW7ce+O@i&U>W% zAMEdN@>_8ILrV1e`+XUma{LZ_ARNE*y$cUdtiOCQY>)N#^Hi>etxsMIKb#oMK7ikW zqdxgZ*gdbkT>j9K_bBobxEXAI*Wp9BI~>0gErSn*;~JKS!%eZ(U%m|XJ&*N%0^beC zdn!Ns^Eo(vN0pZp>A#1Y^H$RQJPQtDuks~ldE&wAvhaJZn$+y6@dG7HuJP(fl4k5n_N4@e_aMUYrgzdM7 zTkAh>r%adXEpZ#73-v)1!?EM^+$6)JmzVcge z_-}x}&e{J4{|Pru{&Kwm{9Pvb%lpHz|9*#u!7)F1EFArirzSSPd>b73{Z5Og;n=?$ z;l(+<`~$pA%J27~{Rf-hcz(W6gCk4V_b<2u9P23`0LS$y4=v(xu=$OrekNQe@!#X+YyV}A12u=RP!o8WlOl`9VXU;F0pwk75T`)+W&9%w%h z&c_=A*U#Bch3n<`F4*~a=>HO&ukSNB_P6@AaI+Hgf_=4PO8ce06WkQN{ge+&tV>n+ zOgPp@o>9c};QGm5{abLXUp06I+|*zkTfzUq(OZb zNI3c_kAWMeeDalWgWSHg{Q`hVe=uljm}OMl0ZTfuqzyu2QP(VzVgp-Twij9A^*#b;izBzZg4ANdC12O zDXm{VA8w+OL%wN9>H5h}!1?^|!twg4eg)hnD>=4>D;{6^|MJQ^!f`#wz2Vp&@(|el zY5(Li;kX|(fG5MTzVa-%ampvZ1V?@HCvfyvUJJ*1$(2svzLE2<4d?CK6mfSr_LKgH z!twq}J^_yT$>+gw{m9edSTA`FoUiv~xLK~Am2iIk8{l^6%W&%7XefVYO7;!mzHkk= zET=pWj`eR0p9M$%?`wIT3+84j(%&uR}mi#M}O6ig5&oi z`8+uCH-oQ-<9A;9&YZpcFdTnlXbwLIyB_vSemm*q7VyV#?7x=qN_Y!&uAlsEj$6au zC)U3W{8M5uYYVT>>E+*H>oHzCxXei<`SfoOSB3o>oxB5F6V}#aN4Pdzj^~cab(6jN zo#94s{7pn|3CDcoo#5z~+!c=g$h~3v;~^hWq(45f^{GDv_HR6L2l#wA_E$&vikx1) z5%&7hz7zZ?9QWg0;018>yEFWDV(oW@-^=lC@RG!+3;)f(q@$&O7br8N^T{s`X#Er8 z!;JAJ&1u=SWRJ;j!Ci9vHryx2i{ODdeg__%*qrae6X3X}B0`#mC!a_nb0@088^!EEVxJ!=xZiPNM{sSJE*!nlZqjS6oo{+Qu z8@@Wno8h~1{15y@j{W|=1&OWK@5TBAj(X+qbN2oL@$Vd$fvfFNx}Ig>COIw#cSvmg zTfqC|xB`4c&VEaHc#bQ<=jFIEd_`jGtpeW$N4@gHIs2;c%Q>zFFUj#%@HaWG4*!wk z8t|5Tmd9l zUI9lwJ@w!+J=l{x_kJd~g5&S{4d9Nj?=jTNd%?b^@MsJl4#)ja9tFp1d^31F z%&oj|$d|&1|L19Nye6r?9gg>e@?&s5-s`aQ@ld}Mj`uk78n`|>udn8C*`B4`0&bY& zmT;FGw}KCW8)hZ1Q?23Ai5be;!Bb%4d&qb7EPanB&xfOac?sMkD~TtshhsiF!sYfV zoxfZQwx8}VxgFey=gwzmct03X(0Aa;!En4rcY+5cdrY!j;Pc>kk0?)p<2{#ree&17 zGkiB3^~q1d(O>yZINoD*fj@zb@9X-m@M<{Tvv-3x!x2y3YVQ*JGT6(FVAs?6c87ON zdNA7)-UE*PAs+-sJb5r2^N~-<+4q3Q!|^+UJQKE`?q~T?xH-?ua_$X(2sh@rM=y9i z?E0yfYwS~EZ~gni9pSLw4?YBr_h9lsnA>RKkdKGscWikq?0&L;ec&0e@1e_a9th8c zt+xW_!SDjO70-=%1pFiH^=mzY;Of0f?7_lk;I}X0{bBdF@%@baVTqmJ5cndvb<&>z z&w-;SiOnb91UD#X`R@_%6L6~>e+swHaryoJSKqFP z4~Fyhr_;~eFG}`cHXgnKj(GCJFrskCPr-3NkY9%@qBY(Gcu}&qUlZXE;buJNX?770zrjs; z?r}L>yKm|5FmhWs-tSL^d%)iRj4$^~tpAnpv2fHQkAma%!|#xo3`alYTVU^R#+wd5 z1bcsUy=TDl;kX}O2fqhLKjd#==i~h33I~+l53Yw>z;XYSJHy*1d%0iI>wg101djcB zBRmOq|EZU6PxfGT6Z{Aqe*=);OnU9*&k~o1Z-&>xQU4uqxdTh?x7y3iVe4}Z?}WQ0 zJ($gb2g2?j`z4=~?B%)eblCXDdjOsdTc7+OJU`ikh3^ho27CSM{}B4ka5I%0^Wa7Y zmA)RzJHzhRa-5IAy%QV%ad=>2Fna<%4UYXIPln_EBi{-8dZNEPACCS!2``14qO(5v zcR1b;Jq=grSF%5>N3N6Dc+bJD6NB0FaF-(97moE+e>@!5=L_)oq&L5OV`AgYhaZQd ze)$79UT0u+n3%W{(xVA?T3f_B5c1LlV64r1>VS$1+dqQ`aj`MV6R8n@2mI% zuF7+J@)x`Yjy2f~Z%VAaTzQAmHT?%}2HRux@*au7>|gk3xGB%o%jd!FVe|b5&wzcd zz6=-2wXoNVM_HcS412wK$ala|zkD|w^DhU_hGRZkz>g(=b5wwzhN~2!(O39Yc&i*Q zhJ6jtUj5gw@vN^h{0kiSxGHd&9ZU7q;A$|UaBRhs+Az~B_{;TS^Bcc9+zQ^RU`^lQ zPO$kr9iNUN1ycmx8 z$REM6KF#2-;CPSU9A207`nP~L=k#(_uC#bfY6&-l<2``96I@Ma4!JuV^OyU;_Q(3= z!(c?=*p4Ry;fODfOziyR^WnQUxM9#`tJ#9 zv+oT5nX}&&{;!BD>|A<1sILwq3Wr<=j(*BbVf$x2a+}0DbcJ^=;@x29?xDUL9QPZ! zN6vnCct5yCiFqa;2}geUcsTZ_dZ3~`8|5VOOk!?S8&Wn{SQU@KjF9@)Nj$D^m>uE zhGYJ6qnv&(xE&n(QQiSY6y~!JPj-Rhe$@-^4oAJc;r-yaUgd#s>}UBn7*ROnVTs)j z^5~p?Kln`8dhC~c4($Egu|Dtx$zJ^d@Fdv&8}C4P3LJk!=?CAM^xDg_;OPIs@V!Zo zIy(fuAGTk{lb?cPzWw1>VE2RZ3$ayd%6d&piggJz(QIC;0$4?w3R0qmsY&^2tSfE*$eyKM9U{ z<>^Upe);B{{see79Iub^JUIF*Kc3^E@YBiO`JV{C3_Ev^Veo6oK6oMQ`Uk(8{H;g( zj}sejIJ_dqC&O!UJOW-1M?XixWjd91V;QKI$KYT_5X_pMh)g-27+4Z^Ngev^Mo{$5k(!ew?T-4Em8YKhG+ZwtrzO@JH1h{7SafMb8i?UTJe z@=i%_yo=!7l3uMw(5!0|iW6nJi8 z)Y;|mE6G0iec1J}zv{ot*tQ~*T$d7ibKD9yfDr}#ojhp{$9|s$?*KTNgP+Xt>+qX7egpnIvGEtcKf}>~ zIZOWy-FgURi>qXoBa5H~SC^P(3{zwsXe3={N2XMT{l|O~!8hI7| z4)%U(4*5qoUL#(Ee@pi2Ux&-^9}T>w?b#b}br@0Lg*>SZ$35UJxM>l$hoi^p_fAZR z>}~icIIbai1RVDec`O{)pnNe*iG@SHGqKmOJRi2F*83j37`8t3i{UR|b)J4d$Ct4A zT;q@7wXpT7{}e9UwDdja=Wt~>?&)8^_2F%>_4pFrscC8b@*c4F4CBd%!Y;M^6?_yN z?`c=TLtsQnqoS<2}xna6`B(wq-cw#xP|Uj!JL~*!|}rZx6@)K;8w8>$@`C6L$Z3 z$cMr9!$TgJ{DX(W_R9R~PlC&;rk@VT(}Z2hal(-Z4o1D*{>e)%ET z>&=|t75036AT#He9Yn$^6TruLD% z_2@76gX8*c1P_1_g?bwEWDp$pwO zeDd(5w?7@=39$Eza-5yut6|s2qYFG6wtns9H{iHlc7vBDf9<=%tKnD=`FA+_A(w4c zQm^&M+rX};ygS?$Hoos?d z@|TI7zx*BS{x#-M_*Xct&y(PC+m+1S9K+#CusS60=BMB zci4WYmwUn1FJAy31iPQ?&v^JK*!`~lLUsq z8{xSAu7xYGSct;>|(G&t&?4c`V^kN)!gu=hJ--UmOE z{MA1Izn=WnKLmdW$NQ5<;N>}f6keSe^XxHrJzPoPkpF_q^W1pyf63l@pM)#5E2-D~ zPr>!zxF0_Qw}#{XD0hR6uf5z0_WtAX9DF!z|2*U&u(>_tp|JbK^^-@!J~!Tc_*58C zSkISva#pfe{|Y<~uFP|f*Wk&?UcGz;Y<L9~|rP75pe1ua_&~H{iHlU@|88)7*!cFaE8HH4dtP^V_r$2P9&jJn`S7&BN5JkO`>_v$gJI{dzBdn} zVE2^u?hl^@S4rFtz7Y03miCA7a6KIL9|_+N$DTV1e)j*^dlvw^vZ~Jerb%}L4P78Y z^KuB?@)Bq}m2|qBXIED$>7r9rp{mjkh!mAdC865}gA`Cx>2hR#edw*2;M@y{e)_)X!fiU%+29T{!py{(x}s?*+mi5r*HoZGrz(SpN(BQ^J2EKzjae6TZEq zr#vv7&po#<(Z?oX?g@LDZq5~^{#-8?zM#a!zf$;~B^GSGO8BB0{sH08al}7VIOOBi z!dr#0@!=16k1)Igzef1U!t@vTb;1XPL;l|&JSz;p`Fo@At-_SYANa?FL!QAe7LNV} zzf3sf3H`3@McXwA#cRrtHk8@--ItNG3nnUyj7UK;SYR;F#Lrce2s9F|6buyVcJjp`-E>2 zrfvMaUwFST`RTU62ZW=)KB&MsVfq941^*}E;Q#Lkzd%?`DtHQhr7-P*{v*O~7S{iw z%-yBST*l9xAb5 z>&wD73P*duPZws+)NSi4`Zy)b_$0rt3O_re{|Dip5RUr%qwvoO$9VcD;nxULf9iX? z@H>R1QVaZb;omFcso(!6{HZMde+qv^nEWaKe+mDyaP&8wc&;W3=4*A<6JRltN>4SxbgrmKe2;U?OKdJ9Sgl`s(@*W|4 zLKyy1-VX^sr^JG-M+v{Aq!0XR;g~Ope~U2n;qOx6-xdz}1pm2k$a}Bw-v~=YiuznG z{OvNH^j8VrRf(fN!1ouXJ;*2cp~6xAV}!R0hrWEA@DqfYzu@oVg`X@O@_)7P(}h)J z@z*DOQaJbp{&C^pcfas$!XckKgP{N)PT}aklft9I#BqW5l~}O#4B;DvqkQm;@WqOwkHOCu z#z#o{XA1w4F!BUGBmCwvJ@Wr-;r9#EU;I5s_)ly2Z%Yghh(AY}>#Jz*Pw3`+;h0Ze zDBL3)?f)s^`wGW+eUb1b!l5s26TU3NFA;uxhJQx*NhPL!FBQH)IOcQk(GnB?bHdLQ z4t)l`O*qE?D}?{6aL5bzjU}f4!0!;Ie&Ama{;e$jRl@&WIP}vm3V&WW^egxug+m{_ zM)(39Y^T2D2Y!&SRCe+AOTs&9cu1K3fS&lN5|iMUg-;2qh$0^Rk`fdD2I02~$M^() zpiEDH|BCP@ghSrmDEvj?s4w_`2~$7H2Yy z>x4>DVR%43&lWyk`2*d1CGZFs^Vde?q_#Ox^!auJY=2Y@{moWWK`)L3Bg*iKcjDmkh z_+!G134OKxyYOG>CgzAg6#j-V>2=%sBYoUO3E?03kM+S`WaxlD5&l78>PLRyttA$0 zeM3E}AfF9<(JIQrvD!vDF3@%2ak z#23DIzLU_*KHRpZKo|<2xpv{`m)Ce79kveqH#3B_m`j#-hIWXxFQl6gylV-Ef;h&_yPUBgnP62 z`v`M>JKA$!Vb1@mh@!t9ApB%u+C%wUgr6!L_4`3#&V%ZIk^duv7X&Duzefpk{*mVqkT^l<{cX$-+jVgDY3{~*9!k{ zVe+Q^;B%Ci`oQn&gzqLC{M;jaKjDzS5n-M|2a^YQt1#nNx2-XKJVqG)f%oa-x)KYv zZV=`fVETtY@QSeh7xe-2OeFci^QQ3>mQ@H++Ihi+Tb`rsKb?)f{c8=mQk`hkC6IP#wp{=<@<^1**x z((AT0uaD1^@#J?*_|MDuz<(_a{{#P%F!_@n`fmuMU(}7QMPc4M2(O4gr4QaCNc~9j z4B_t+2zh&^Fzs0 zhkU+7_>{1!T>QOU__T1$H{cfuBQLb!mBOzUrhMJDUaOBc3!{(8?{&iO5hg$Q`$pm4 z7N)Jp^P7Y}Bux3bZM{_=A1mphd7JPjg~<#0Ul;zYaFq9M;V)Z0^7~ui zUl0!Y`a9v*WcaJXZx9ZCeogo-!tj>Ae-eJ1F#SOr!S60H`F}(B1H!?NZwi03jMr`J zf9d1n!pIkSep~o&gk>hW&I&wFjngu!sKW)qTZGY<)cGF5JA}g~zmM>B!t@t)x=8pb z!tj^+{RiO#!YZQ3?_%LuVf`=SA0~W4AmsIt!p{??zjWK$s*j%)j`?M~@Gl9IKkd0f z_|3wMKj^R0#|MO|FZFqx@F#?WU;V;=E=*gf-)`amAsqI^b;AE795yWYE)oXHr@SHI z`wD9rRpc=uyiFK>QN}*uA>mk4>=!;Dj7?2?@U3M${q;2A7nWGJtqFbnS7GFbIvx;y zV@7{O_&0@VFZp4l{)w=vT(tkF@Lvd1U-F+9{(E8MfxiXeZwb@ijw+mAr`12a!%>s-U@_fDUg(W7xHwoXj#FY0I;fpi;R^dlw_*aE@lvw1gw+UaJ z#e<)e;a?LT&*IE$ZQKjG{KYK(!@^(7;y)t% z&t<%-*ZS|m=SeteKY!q!64QS0eT8HEeN^}o;jlOVQ1~&z^uKOfAJ@k|VRQxflls^% z3_lru1e@z(vg6|^y&n3NXTX)mPCQT0Tmptwvd^ch0M|&<3zE2r1*t(za zgN5NIf8a+8E6ZYhf*&u8KBE5j7v3uz`8`1RDZ+|9%4hfm#=bQ2zd!Y<_dH4AHxs_` zx50r84s38>g995J`1j6%r!hI|kNNje#hve&lbPoU!@lO8Iki_8_6qUfZMrVe#hM73 z?Ygei74eVJeZQ`-86KeyhM%DOXJq(^x_?fI_0_ss z*Nb#%>M!gf@Jn=&KQ_jIuK!0DHUwe2b-h8C%*28xL;8MqiJ_;iA1blFTG#9Pq%Le6 z(t|&*i#0fQ-hN%T>w?Y1AJp}2UD#;+VQ_2~Be9RDBlvt_?&0set_ySnJz)#F?jcNm zge~d1zc6`2e^S>L-H;#GDP5Oj^gk;6XkpSqe_B_sZs;%m&ggo4iJ<{sTVl$8uCB2X z>#OyAT~EvK3xsD%tlQR4=vo#In-~0}!q{m1{iLoJ3P*dv?3++`Wb%c&ex{7qZR=-r zy}XPM%)SZy*H;n$THU}O@_4B(_Bp`(y?=J{{uB6vj>y^6xQa8~buM++n;mH5h!rv${`GN7f6R+UbYjojP5Bk>%KSY@J z@dv(CIQkE~O_((Tf4`&)KQ{d44?HLw{08qArfkXsPY6f;uM<8Z9Q*_0H$7k9{4qB0 zn?`?vPnYS*?^ksFmy%vztvBj=QAw}c)|+*`OgQ)leuZ$9{}y5Vn8APWFAGO|!T2pH zUtg`a>Uu|sb=!KIuJ;PxUElNp_#?uU$KShj{ef__AB#l=)$iS`~c%e)BoZR z{6hlK9`L2L_^rZG9`QSb@1}3Uz}E<~3{tgPAJH{drl-u`*L8iFUSF+0)%Da8!=F#- zdU}a<+xjzI)56pr837+FG4!9;^^6khw)F*F&k?3R=au-y!stuVe@WMCh3Q{?wZ5tg zzX%xmf6(;~;VADL!uTD6f9O`$?c`5>VAkQJr~T)tQlAsn|DwOqt*o;{9`7dn*TR%V z*xiNyF2nZ}W*tp_{M}plTf+DR7&GASQ^Na{_(8%C7p8uc{|Mo2!sM;n)}{KmBEvr{ z{MZa%Cj7( z$F0JDQ_`zPep^ASeu3xT_~NfFKkVXn-F4G*)W84OI`3ESe(O1ZaJRoWfA8HMd(Nd7 z+;;vyo!4`xn>Y8i{&CaG&OLF#`J4Z|=Sg?%xyu{wa^0Q3dS{G|*69aqKEt>FKv$ge zxUo}n2Nq_>7pJEO=MODBVPfpq^z3Z^k?EapCadE&IMv$F>#r;hGgm_0bXxL((?4&rQ=5yrza22%pbn=;OuPci)!PAPh73s>3eQI zbIB_Dx2`G`{I)!&_Zq5J>GZuepLtj{=-+~&b4ybTi()>E+;rjT2W>u+82N9_x*O+a zFTHW+!qm##^!#$s)1N+lzs+a1{o8Y`6vG>4<_|8MSSqUa$M zGvV~&4U039+@g+u@Vzxx7oEI!a`{M6x!?Yg&8Hu~wgSSAC^f4_;?&~8(!!zTONR%> z_wSNvF@0iT@#y~J*a??kc175l`KG`l|10?xh%L@H~8C^Xa~SiM(Nu@_)$G z=F@}!68Z03oIFvQN?V@3`E>ukNEwsMlQiPN7v8h=(jV?#!oRjgK7GOFGZ%Fqw%^@q z4NV@OotZznf2i;JJ^C&uhs~|i57~U?y6%!d+_q_sXD5sZ=q^8es9@PH%u2Me(SwjC|>pW?-}76U!0s@nw+9PZAQOG^&1)Z zp6SuF&>TO#ee;=_?u`5Hs*tL!c}#2P$-`P$&n_I^F5B)>X2C1>Yx%}ndHdy$KD07B zyBaAW+$2}XIfZ*E&I{c0Yj2pj?oGe@WqgdAHh-$6|8G9;7Yf(r^Az-4UC+_=Y+XOD z>&JBA1vstiS>?q&VZ=cLEon$g9=Ju9h9~;39q7Mqd|-66Z*X{GbYSnu==fNF-=2Y; z6MIJo#>V!I4)peok5B9!8Jidy>F?V+HZVTX*FV0mZ+v8QqJLy~d~{^b#CYH6?t$@6 z!F$FB$M@|VPZQAGwu zZz{mPvA%udBYOw;jEqlQKQKBrI5NDaZ+Pe6@a{5$v4P<+)o^6jF4cI9S`YQ@4mdP0 zG&sC#q;Ky;-_HJ>gS!X&`-W)DuEE`Ea27!8hDP=ckEhsGnBu72zOh{c!)n~#k-_0{ z-|iY1@4q$=FkRoZqhn)(Lq(IWy}@CleLDw7_6!aUj*peiyJ2v6=gz+IzO6g>+}6wI zj_rJ2wPUnzc=y0A5e%r;M#uIJsJCE;`fapt&z_rHrf;)K^p6bf?Hd~#63bFedewAg zQ-+jamvX$Oum8G|?gG0rbFl*^P zHT3%3d&edQhxhIq=Vo-gf2d&5wS&8_o!BFh9`3&>zwf<%@S4%SaS8LaBSXm2*dTzy zD*-BQtZ(;#a@K&jUZeF!WwleR)o>}eHqf_o>>3S>YX|%H4D@SY4KhNm@0}*Gz*OHu9|MP z^j?3L*FWoH;`^$%KI(PEt-+j%2$${73<-DK$$~mP?SbpuD)XHX9iyJRD zPaT^c*VVW8(CotG^2Bl0pa*4P%Y|AHjFsQx3uDWRGVROa`$zky7N;gAr{pnPnVnpo z22D-QP8A?ZoL*Ye95OhsTxSj*SUGfPdU5gO^32@ykzyfvZ1R)}Jvci(e|Y)G%>2~C z+%Z+*(Cp-4c?#40()2A$rxf zhQU$E^XQ0_l;(?4V@Kpr-;EP{`)-oJ?VQ*%FdV`CBTA#8DmB+BxFp@0#}Drtid5I! zG(I4`;wlhc%ywhCX^R<_>_#0bk*-|-bsB?N-4J>yeO1ufEsNSSI6l5-U_t|Ouy3_3 z*9`8ig^Z2g7&X(aW~ZW-TO+KRyl;=n)6m>CIIw5uYKtUE4Cv9mNF)tEq*-vHcl$Mi z;}JN_^gxp)#%}1_8=*;s>>63ku+}ewyY@&&)6{{Tk291zio8Er8Xl7%2i za^_~{EtdX7#Om@fG`4$UaObKP4z0CsteozpO9%E!r&yUxjO^76mDw8|f@POnr%CGC ziR%V#Duix$WTzTkOwNS?Ah@?r+zL&u@4lVY5Gl%WhZI`Sw@O^7@4g$*xZIYR+E5xC z+BZs+zrt*)Sy8fG3M(kSC!Q=5YG8C&8d1|F(_pFWC&cXCdq$YpR)bWkx|(JW5A0Ft zMY(y1${*8AFfuW+Z(Nhjgz(UytPBZtIcrI{N5==1DJ_h+8%75u7ELh<9}226hk&rM zf8Xfn!0>85H5f(aMfGDvMHZTr`bH--gGT_x(Hk0{J0ncJNl~!7br zkhtA5qVZJf2eG!yT5KpR)`A_Sh=w^|g;1;tqz!(Vd`PYYwqrz7s*+c#TRmBdX<%Hb z8$uQe!~WXAJ+^naDcLl}y?9laT{61*ZXlq(I2jw+J1(<-4|dKCWuDg;R#IwZY19pL z3AX{Bh*gjFJTUWQ<)S6>l2yH(MI(ykik1a#PO%;+wal(T%_dUv!&+gCuFj#T$g!J- z`%43BTtj2`z$jU1eDIZ*Qk1|FD$_cpeo}pUvD`xt8M9!G?orLiDFU$!6TcuB?He1& z2{dCdGzW*DB%87@a|L_h|6Yx<(a@O#qiCTp(+jKkIunjxm+G{w7zIVEL&T;1c8*=! zcin)jX01c_VLul}hSpBf$1J|Q=u4~FVx1X~9OM4~5363S&tDe=~5gcDCd>)gi4^K%Zu;JTI5EVGvWdHPU!q%&XdcPhH|OXK~b#~dF&|i z*s)sg9a(Ny=tQdPn(mtFb46p$5qd&p9aNbUMa%t3y{{@tzDn(C)9^=cWU+S*7D9W04=f*l-1BkRSm7?a6&blQSTp7jgl-y zzQ+}NMDbH9g;pPv94)QV9V=RKu*9^H9HP{Ok0_PnrV37&io9pr(h|B@)`gO%TZFib zqXjjxOb*M6WsJl{4`A#_Ue>hIq2dt3Rvz5Kqs{N7P~lg~l@gG1y&D~v5Wpe0FEd{5|Z zR;A7qC0iPo#dWktqM4Q)LlL^Ao#Ifz{ljHjC}E=Db?Wa)ffFkiJ(@V6KJvdRFz6(c|kR0Y&BENDn2+|mucjeaW$u& zV1^(cXo7cno#&L#ye>vPX_{&ioS`n(74;I`r}a>eAj=urraeB!UOnc7sHvsLwKZto z3P!s_7c>eE6_Qz{Mz1F-G%ILDso?*FF2+L|C!yD%BYa-}CPha$mxSKCVEqZiP z9D{;c3WP>Oi@-tKBj`7H2WI@ElNligl!xc#d8M_4LV;XR7E)fto~P+xX&!%+QMCG=`p;dQ0fl9;E<&_g-)sztbs{MB=^S(O8O|qJQ_UaUF;o? z7j%zxJ9ZHD1f>yC#}jH(QOr7i0=Gp<}hNR@YZKpMVWA25A zN7Pni6qzt~&wE7ELh1+?$&LP4iz>}|P$8B6MgouoYyJqsj${n9$54mRg_P_RVM!nj z$V-GLxoZ!xyte0+(s&ML9*h2PX`LzBW!5R&Z>hetEo>=M*m7~rPZn0oistm*q9rG_ z?x6lBWldW;^BIBuXVfyzkvjSdn?AI!%koTSePRm+ea6a!*&Kasy>e2R6y)NulgA=M zx3;Ar#5SHsD>a&vTre}C=WH)cXpKSpkSwI!q1YW$9%V6J(d6l_ zJ~oIsSV#=E>`FlyI8qwZ2hPbjpKm9M9?D}GYv^;dQL0~*g=WTDYl=gHS=HvLn1QG% zJ%h!Bq}r-t{h#{rHt_(i~O|*PFlX3A6^f zh1md|Xv+((qkoY>M(C3GA2{!Ahs~%=%cJd<=1^>mkory(A^Dx+E&YyVMdmt#!+vKS zhozBba%9A_duJMEtu!M>esJMr(Qf347COfFF+-u}uozkAHpPd;R9E*^O61x4!*k2p zu~^1f(9^1&{Ux@ayQM-aAj_1*-GWkgOVg=s^%`S+V$IL5J7-p@UQcza1M@zuwPhN8 zVGFpL7HgTF@OlONA-HdO&eP7T->?rz5z33WBj3G>LuF#M!V%HkwaVY>!Zg)L9d}NZL_Q|9kOzwkU8|^*`%S(w!!XLs^jY{ z4eg9Bpy$1+>&Ewbzpa(St!jhk)tF6a4XXsclZ+veN&b)zX0ec6G-;BjrqnsDQ|I~R zsj-V=1%xEBmULavA80?UTc(U(39<@<#b_pY%RR`lzT$8wk@)?*oCNvu}e}9+tv`ay&;VKje1)4PwHXpq140J zeW`~vg;?&eHqo$dNqe0MX`*az2_a3C?d>C^iL$-bgfvmM^Ma5j%61MB(nQ(LH$s{y zuTprG!^yr5PI@Lwqa#_ZG2fDdbu8M5QHLgD{ZP%rvvX%^uQ{>uQW?>s-o2m|o`=vE zP!aA~u#VAn#Gt?ITRmRXiS)Fooj&sR3ZHnq0eH1?U%l(wufzP2UF_%Xhm^08ztgMJnC~>Xy~R=+k<7bS!PChTD2a6DBQAZs>7re9u^LAzAF!)K#ifkCc-27qe`v8eMY4Bcu2c zqaU$V5(P1#AyYWkB3_xOE4H@lQI9#*G3M6Qn7qzN1wBrWRp*UVx@p{3`6|aXsK#O^ zM;~BuGlS48^rJn#xo?kF(C7Io#1iinC#gK6wbNm5vYK#<>$$iTMv+(UO(o%nwzRkB zPR{fY>;K#@u<%FIPkPms>wiMw_h`y9)?MU?oj@(~8W2{uq@fLa*0Td4)Sc1CiV`oZ zOG5(eaO_lJ_2EUa&)&64xmpvV0dk*vlo_#0ss~(QM>9z<`oc9f zoh1jGfnLDNK#E*HLGK-Fe0WJ~hu4Jo_EE&%uXQ(ii=54^6i)3a9sTA{&O!JN&e&Io zrVTDc9I}sws>WC@BaYTtH^5hN!zRkt7I;3;YjA{>CiSsS%8{)pu5t z+R%t_53Z2E``f-WcH)sGY*2sGyK%ow-txHT+)3PX5+v^Ntax5cA(U$G8uOO(#k!@3 z8GX#p_WB^>j3kdccDL>OV~pcNJFN6^XD!a`7rKx9PE{!IrJyZIHLaSZ6>iuJ^uFWF z8&(YMAu$rM7l=Kil8|HPY#m8BA@+v&&Ke~4Jx>;Cn_^t+rkGnRY0yoU*eJ_hVrJm9 z)~c2R532Fi(%R!)W>^cfIN2@iYSPk9vCg|wtaHW|BUkdVF2NFtnYTGKt%e+rj*mQ! z7df#8W5q*!+~e)G2eulDZe-MX1bIK9iNaFrnx;IRI^wL+*(-M2>vShnQ?y*YX3izW zR`WTm8ZN0V{zi^0dx4pu&^Jd!gB^qgNzcSRb%}ep&YJp=XzHi5A_hHaO-d@(txc5J z*yw8e^%d!UtZ@ zrO7@)=Gcj%Uz|&B!`RnCT*TVG2-~L`8rBK2O^*1E$dh)r_jpw%I@2Y|fCg@Q4Ht6~ z^SVoRY4~}~hbAsz)5o0bdEY(H{9wyEa`Ea2KVo}Gj6&>?WHX!YaM`ES$$L~0&Io5M z$0&+0>=bh!ix9m{ejyo*nG}y?F#n|Vaqh{v(JS5;upaT;7p*nT&4otbOaK-uH2`Ikx=K^+$IkKT{Dtd54ZL$|jBR1N z@Q6w->w73AY3jQcvTv6M0P;V>7C`EtmQjPPv+j(-mH;H05zZ{Y&i0g6p|IwptHz z&3iYEk!IbU`i*ok9;&i_TxFtfa(lO~S2$;lUSlp#UU@iRZyKiwn7|&Vmt>(c-f0Q85E}DnG4Df-9*j95!eb?bJbM2wtrmkO!qXWtW;RZJuSH==s8fU% z>y$%^XZ@f11#X(Z^89n&^!eXY_&w2RtXvQPCHpuUx zWFClJ7J7iS`LR;hFe<|avtPkwd;LLqF>c{8y0^)f!YU#>ik!4ey-aSM^FV5t38Q`< zwf4J3I(i51a^UVIaiWYF%DJwcyJtIeWA~bH#>~FJZnW^q_2rIM+44a*f$gD76!!Hp zA6Z6C7ooNkwq`k2V|qKrZ0i`aT`{Z!Y`wr;N=7ro5uUJNRPjvDT6FBynC{9o>8@I( z+baEQYYE9@9JKF^Iv#t_R&1QUb%D|uMp-XA0XRP(ndVXo5rOZzA$695q zm9BF;r~!Rs>$bfqy^ra_gNu(0?bQB zrqAmlv0($ps@L>b+019yJgFtvbTOyUD>*+%SC7TJo~W1=O~aXR`#lb;j9A}M5*}xt zsD+YxqO0P*H@in4MYz`_P@{QLsBLw|y!|m)e9Ofg%`AW}J(;2948f^1Tez)Ae(dor zt;XUJ!SW00;99a^h~dndX_y_7KY%#N^i-#}9iI&5(!V!}QK6dBe9PIm}|6X>CD=l+|fTXFX&a5o)-O&9NYuA14v}?Bo&Y=&G*iNm^hHg^M`in;9*W>`9G{!Y%__<|%bTCma4E=HbN9O9=h9PX8+SBU6WQaUW8)*M1x zk^71$h;OE}jY}VOqJT$Ue>CTSY_NJtvDDeN0bxE*ccO@odqx;sVLYN!nIEiEnO_JY zKT4*4>CVPUxKPW0b;cX43FfF~=~2 zyX;s8GX|X>wVKoOKfMa!>E}a|OU|+^m7mOw`JOz|?R7Vtwj`oOj;mDq=x9;0pFUic zt#H{{Q1jG&%A1{(D)Ky)=6u@ATs_-HhsI?EA2SzL4}EXDf%OABR&bfIj9=d~Uz|aK zXV7&Gnp=CtVJm{qB}y^z>V(HgXPcqcu7q02&>kfuq`!&&PeYZ22`X9H-E zKgY4IBwwSXd+;Op$t1Xz?%|K0&1w$yijF?6o>#(V^NEhwlRVq>p^+Kc)wEuD!9B)a zH7tSLQnE;f^8gxtahS1l*a5l~v==J|xqh;eA1bfRFTgT_LFbDH)i64s8*SKHkv zt0O#dAUMtlNTKOzlo;ELe&#T1=PIo&bhI6P2p1Vk^!!?MtWP|qpsaEttp3Q8nZdoE z*Rfiz&+6a_4EuYn(objxKsTpZ9vQ-F$WvAO({sDmDphH#({>xMyAnjAnx(h0tHDH|wEzg;-U` z{#4{Zjni1DY7}}r=5_8pQk>HEMBF1ezR&#>IZZV@=$lUAl23%A$!I-e&lWwa9lU3r zqaAMVovGq&!tvl$;Z-{ zho=!0q3n&L(U~U_H>iVSTpQ%VH6zqM2S$4yI;R{?Rzi>=eABkmIk%dh;>qvfGM*BA zOx1AvwmZeLathySHC-N4&yzhvOIbAyUTb^t=r?*M-i?Rl$4I1o^)Pf=J?z%iu=GwW zd{-XHScuFDVVz;65XM}<=@;x*){e=m&=ea_Hb$InT5LOJM>H<|kKZP&rl2%t{h#{< zZvW!Swpah|+ea0CFGfpHS7%VxR><{S8PCY@suGRQDw(;1bNzg#7Fz?`X7qX{?k#my zWdFLuSPvZ0KT1W*#PhEXIj$CR7v8`8-u8xlv$4h|9!baUi}U`3A>F(Kku`(8;`9ZY z2hT(&3VLd`9A}AUyK-qtOL#p6?>wPwuLbe$Gj8MAi1>~jY`20IyS?@B-YmvD57>;c z18$#Fq_zLftC5wgOzTQCKTjn99|ulLG95P$UT$h zzwmKJJpMAzOtys>H=eJ80_%`Djyk3=?+p5#g^a$Kr5G_-rCuqew;df(ix`DIabUYY z*;QBu>=48^+`(q6o)K$bgVyP-ljA8~d)e!&chWG*nscKc>~l<~+DXBz=2Hq)+bPAZ zWvMk&g?vWtc@Fk;TW)M4FxKFDb6!zrIETLpNegXG3eR6h3OmH!sqmFBi#yyjX~mB` z-(0l4Q#|^{a&cl+0+^v@^siUF=T9^O{9|Kig z$5F(4_C!(-sVDhP(&voYb#)5A2M0eaGDoau4*Ux3B{Dj##}ZXqr_ef=S1+Y| zI(i@7OUqOJyQPCO=wJ8Usk2N^`>+bI-j6|@c>hQ9iijNG9CKy5vqm8w z(nWk&z{rDrqIsPAkXeawpFc6*PUSNR^>B3E+G*2FPFm*FXq)|Icu|pQbOU{WP39Fk zq43$ykW$C+Ai;rZ99~-Ujc{^6-=+EEsAhm{AnqSeTG z)nbZ#L;h1fF&^Bn3AOKf;FCR2@W-nRo>C0`=UTBk$oGWcIP*8U+%=#VZ>?ZvmpmTn zXK&|b^)%zeb2=rWC+a8s{S2!=d7{<+wORH1<*Ey9=#@Rls;0Mi+w?Z|eV~ZHQYAq> zD@snkZ7Wj*y0VD#8?v|QJaL3H;w)w8zt}>N#rv*q~dJ-#Q zt0Rb&mfyDP6keB8ZlZ6W+fy7IL~d*}r$ZL7r-;X9_xuL3 zeaQIr4x&$^)-67-Q%TRfXl`@*-|IZTyPP=RVF6+7xRoiKc6gqEkH|WlAp{FH=TeG; z>-qj|p3W;8kBOs|9KHHx7uq#+Nwk}hl|P-A@*@`Rgmug~je3}4o;9nXRk@)b*NTr( z$@)L{3p`=*j~@Dhp^xcz2G9Bayv%%DH-)3utL0UtHR{6&0A$`za#ZI9(mS4WevB{n zoa>=6|E6%x0k%^+w22z4-o0UM!_#TZC9%(mUmcIotiJ8f$Hu33eFDk%Sb(e;=_&e` z)tE!DyXqnA-Q_e`($$dM*J&%g8ed-}o(+x1IcG3ZEj#5$pX4Vx>N^^omqU*-{+$~m z#+Ti9Uz<4a8}E-7_A%q zzzQKWKVh^g>3+_TL5t6yl%Y4#@LmfcF_vb(!H}J5W*_$@vw{1(P96RecvX)}Pj7hE zrnGjd`nsl`3w@33!t?exc!74L#nvuRQ+r0-`sw}Fu{wQdL9|_aT)tmgkL6?#JrFf> zFDK~$c6{9m zzI|35?Lyf|Gd2(sMG9mjrGb|5i=PS~P{c4E!WP2c?p2ko%`~5xtCU`+ufJ=#Q@-Kt z=oWA5%(|8NDd_zktSW*Bc(_xj*HCE7SV88N?^<+A;u~d{$4CTgfjlSgu)tevt7PNl zX|Pvq15!8tx=H7FO6VM0@3E~NY0+(HUPeZz{BjyrXQ`ceopUPIkKL)Tj=NK_R_soN zZQV>|-w$K369qFuob+1{O=lkDId$eiPSu$QIaOyKc(%pWZh`4T7xEEo3z^@O%jG> zW3N4)1;zqv`A)UKKf;`}K3dw2@3?br=1ylB!bC$ z%Iekwi<+Cda~W@S_d0i%&)&kr+&nH*ySn#8uYA|t>eIdD+t$$&+t$$&?B#T?&3fw7 zy(icO=w4R$p4hgIp4cWYfA_Mw_eA$r@w=bhO4`1Tp4h&Qp4eXOr>rf5+t)EBywlPx zpYA=eeH}f)@1Az&PxqeaE<5}xYPXUuUq?@PuW4=WT)vK;xO^Qw!CqJQI(P4h%h%Bp zm#?EI*jejVpYFBcmtDK((tW1hv5qmZV;w!gK6Ur{bnl5B>#$?I6S=nZ>{v%n>{v%n zbhizzSVvD>v5qmperh)kUa^jzxMCeW!G3MGvbyV(&T`BNPELf{dy7X5>k`kSL;Q9& zydUh)oNB9!J*DgkMlHiXZts@8Wy!B#e;*!QuP>p(yXNzFDG$8b;k(7#6dvUKoJvr0 zqJ?-cUO0B^>i)3w+*73D2@|LTd!>r64=-Q%Zj#=#*I!=JF5S`~&)%D=dQj@=*xx|T{Io%5Im4@rd?f$AcUzo0KF-(|VKrMXg)!v! zhouo(r>T#XdOW)%4re@q)67!aNUpM6x`@C@$t#gdM@~r6X@2~Gqwx?|J z7_r|@eepQQN%%-f&aD0!>D~!wkD=^%H{5_paDowqtgs)+K1FpG8&8mXgOdx@{gbmvX@4tavU8pK;cW6?&o1A;Ih(ZRQ|y|e zSay$1s$;oE`&%Q=?yasq_lD&I2bw8WB(sRt4 zXUp|^I_!$rV?JBHubtO-(wZa*TeSvRKR4TJ6u(K^E1CN4a zWUX^9cdW0@Zj7YTovtc*XQw;X&g;8bukVC2-?d|#$t+8XE&FnRA)1DMXIxt;7D~gy%1^YT=zPvx^A%*9y{CEx;~-L zsWi@Eat1m12x6U-R%t%xTU|l1!r{62WZ^ec)lb7Gi@N#_Syr5}reeL$xy-d`S(U`8 zf7WAOndP3e<{IVWe(e&>CDxzRCumvQ_*@HiBx}WVrmlT;T3?Z-Uoxok*=IT9%w3@H z#0B=sk~+|j_IOrLH&6#w&2Zl9W!HSI9Powk);>P#{Tz~!r^nOF*$4B&y#;D7$tU&v zBr?xjv;NQh0*`p;bANgKov-=>g!ax=&-T(y=)|huZPApg`!$`@t-qz! zevbUvf;*N=d#dWm-ewuD(sUn#_^0BT3A~kfi|Reio9pmm;mP#gOz89^q0k@?(dX&O z&!(QwPqBut3^_sAIjtLY_4%jf+nB4xmCwA7#HQ`Z``hh(#}k-zM(p!)p0TOE z5zncrwcP^2> z+uY~fezCS&s;1VYJXuNj?TXEG?Dl(<+JD?k#hD6D2CxT#^<`;ccH)jR@vOPdHtqW8 zn|}j!y`|-;o65u5@EctiXvr`o69kmo6d+dl@Y)H6&loYuDOjK zY}WVaOYVnf)wKMgQm2x=tD9DnRZcdQ$UdxjVV>33+0D{`y%)X8efuwoG}SOqm7d(|M%k?m zNG`oZKB1Q=iCMLMPq>{2oKirxk0`yLpIx722^IRoPtr|0JuV$7{IdaCr@#z2+Y zz67s+D2v}153SXC995tBuAjt+CyQP8=Cx$x!1_P;3w-r6legV=@tvQm@cVit-Z}U7 z{)t?j(kIgY0X6en}N*taQIK1|Hu~RC}Vqg!lwrG;&JYD;{LAs^zie)|P z*}R-QRrmV&nK;Vu8)2LJAkpv^*ydV8!!uos308vmTx_S;?HfO(SEofbJMJMVe zJ_aqLgg(YPUuo?Wb$p-jZM_mHzYQdTYvZ8`ed=5 zYVG$KHkTXc2l0aDPxq%a32y;H*8ScGq~D(0datrdS?ld&P36Z)VzdGIcbnm{L6~Q& zvfG?9;|HHBlHG0Wr`9&VL8ns*__=Hst!3*n5@KAmOHBC1X;br@zrOTU4@q@~sJ;WI zT}IbeLUTI$ZLL)Rd57l}ZPUD>OH|Ado#y$Vs#_B4DZie^J=WZ_u5mpDQi3FPPJ@kT zN$%_+bQ=<7s=L!z!aMQ0DP21)V-ubyspBk5dZ%Sm3+icTJ<{4~O$dE@uSoY1S*5r2 zME;#E0aEY=Dtw3dEWJO+cx(6K<+SKC`o{bCNLYnQopmMsCRDdNfm__WH=uiNzSJ;HK84RNd?g-e`$F z=Gg=^RlYmG*>f}l(rG=w@AQTRO&yvfzEdjJ|G8h_WuMrx>B-;!SDYibUuWqgH*Ak8 zuh0f~cxY!j?a1k8ZccZ4 zpECFSk7|2jak&Ri=!_6>H&9W5XI;@|i^`?9Mxa8plpTBTxj zb}o;$ge|q!$`-(|N{kqOQ*kYt04gNl$*AIMb9q zW`}m(H&N&MZtWCkP45sjpXteSzoR^;r(18^*VpE5ZS_d*c0!EvII&i)&m?|_l-F0x ze&~lLuGW9kvbyT7t{gkh8SN|CYCfR{up(oP+gzKbC(fE{j^4xb&OAlFah@^8S9|^* z*Ti@C0_3#KIbjpS-}UdukY}V?d$j{4J*NC3xj#J0v^?`Ll-Iv@ksLITc1w z=%+iG=deT2 z?A=p_c00Qq^4_#3yLm^o+V7^^)}dDIc{bNRr>l>E_0*!CWvv(eksdv}jOQ1YtCie20Ys*>%%MXhuotIs2%GhP7 z&Oly~+3(e<)s)L~;p_LxN4uFrS(&Y`Hz)_qfNox^F5TwFY70Bhu~Exz`K@oRb#DGm zLM(hd`JJtaprAiv_Q*9~vuBM|=%diFo%jS*HyZlJ-pBfBUuxaSbLaJAbGj(8(@E1j zp83O1(8JwMHdk|srqSUO1OB}v`?A(|27(ge{T*2Iev`jLy=#-a3GwcdoX*dUu>Q~e z0$(`(lrP`1bn>Xe@1M7!S*r81myB(Xv-VczBi)i!w^6;?MIRAw+rfT-rjqN_X)bLl z8*Q0#W`1Mbbn;)<^X@*^rj|FIfUqBVZ5Kl8U+!zZH{-)X+W z=GQp*#U^_ans{^edE&p}%@pCGZ=R#PUa{5K)Ef3(j~BKby`6T~)*8W`(sYwkr}J81 zrr0@%H($qmh`b#t^nE*z)|2{R(QmBJ?H@V2T(JIprW5PVzlwo>&3-MOeBoR{H@U^1 zfQGHkAx$$xee4}CPAOQc*%IlzZmO=V+H>L^HPoDEVw(D$GerKq8Dt*)*@?`_O&ir(EsLcRKEmu`M3fYoVOqxQpN^EE#^1-+jopqHC>w-ZfsdGx4PvTLpVt8&3_ z@5TFeVlJ%izE$ay_o!2N_|cl;(a6`9G2e{U$^*%6t z-Ou4rRt0d3cKYo?teyFtXinEtqtLNNF_XkzW|beYH-Xf!a;)xUw$m~LG27UyRgXu{ z5nm5a=ic*jm|3u~7;V)Q#L)jqU$TEvPa88LE#@~vu}qo0EIIl6Y1%p2l!CpBCd&Du zC*dkR$u~X8H$BNWJ;`@dPddD=R|$=tRuksui zwd412)DE{r-8r4*DD4E- z^TC3#wIBPxbqZwKp1k&$+)J}|Y^Qo6tGTBq>6>Z~*6FOdm}99OUqwoI5rveyim|GQA=Q`uN7a&i9Uz=Ilga4N9!v zm3pGc9qY@#+6WKuXF$RFKlcmFJn5~Uc;_vxixvKW^_>VH7bv5r0;e~AMM%6)$s?Rk zJa3ojx?FWJ;yKI9Dk#PER^mV@Zd)Y|l;XBm;y@{m=Y?DzHk)-kb-@B?mNQ~KQ!tY0 zxxhXVo@3-J;rfcYa}2XHea<)yjfJmnNdJ@jPgM)XO3TEm`Sf95ANV%^{vENgp;PbxK@ z`xJ7jEd&h%4XyLcZ0tP!d#CIJ#IMf9opVCJki$`3ej7ovB)S!cRj+hMkGrMV$;8p) zDSk#Cj2u}P;!S`peBoX(TjR z1i96L4Pn2AbBO(~-@ck;gd#1-kynJyDV>Z> z;nk5D)aZ0hL|d;UYOjWD#~_2YwIUua!3oB@wFG^+wYW|epLl$?O8Xp>eZxg)Z{Y{- zEkd^mZ`bA3r=Lmb)jr%mf8Is!DJIr1vF?a<;Cg6D%Q$SJg)7Zm6XT0+8 z^|Y-{)6^!y;=Rau{_SlH+dZeUu0!wVq0L-Kp_g@__Rd|k{V5f(*kq|BdI5cb&TKz( zW3NKuC|050?L-cs6Ot=dmtb^HJinOZXdChA_XxdKFrDk*db#fDTrCs{h3-vrKeZ#* zg+iNDX>+evJs;NuE3rL>9wn4-v_a<*@*YjKtd`5U;A7%0+7G>fg~vL{+SI?g$jZ;Z zYaXZ8Lbp~uE7dfeXuS4gPKi6#Xy|Nv56~snjVazzj6G#9vwMvZ#@f_U>RPvlS%bKR z&9NudI&^naZ1riqW}39>YmT=ih-PgnfmU;te6d5k-{MHxXrbSVkV-{Y(yNRm`)TsH z#7|~(<{sMW)9WGeNK&k29hRS{j1Vk0{I6+$6pQ&l(Qm|1hZN`f!u|HJ0}WwQMHqfK z=&>TaN)F^za*mj9OzBl}j#AvVBBzK0r8uvWBaZcd?iV=u(TD%l*PnFzV-@~Dub_j{ zE9gMTseLRVYe+L3@m?}*$!XjpSeH#X(2L|2ds0EuIUL!EnbIS&TDI*cDB4R-ah>u< z=b6i?H6fD@M|W_C6fu`K=L82>*_jquw0&L2@Q@sGKR`Q;%V`fsAA0w(Jr4UZo#v|U zB_pjNd8uw_mpo0ZN3ir+3$?eVo+5NG^E~rYd#z|ImW%VUhJ`BWT2|Gb?OZeK$DAIE zo0_5v8QqcEmNNFP|It(EQda1($KqKL&7bQ4sIY7N_RW=-_9sf|2-k#cHZkF)K{NO#-n@%Fs9KdC|FNq;kn@Qk^g^_1+%Bim>Y zW*N`AwtuJ}Gc?wrN7G5I#%|HSt-5-3ZPP_ayq7gfzD2o)6>>|N=RwiYK9{yAgzlWx zw?|O?rpv9Wi{GGN&xfVTA&d%YVifkFx$o0hcp&4BaO4pg!5?XVG<`E)3C~Ax&@-C3 zx6eM^bvlh-rGSh06Z24XgLNIDK1EGmQAUJNs>cr@SRK{#`GmT!*x|Ab=JRpLjXlc5 zyJYKm(y(vlGx~0Q*vZ%p<`!N9?-c|kl46-@53v+RI9ef28oOk2qaOI~SV1(cBA{$v zTc8g@a>9SmiO%JBip|e@n}+rv*>M)iq4_*x%PGQ{b>WZKt7ycq-Xe_EKs+lRVVp2w zO#}Dwibl^kms4eav&DM?oo2S!+u@$xVcirKT;#$00Kf3DT3Q)9U?dGHG)-u{PT|xm z-YVQa)02w5)9}L^BcbHX$YuW|Ka*P>H{La?QpbKkp01iN_A+@hJE3Pg$3{z|4Qo*{ z!tuFPX<6r>i%Cg4*=LL0F2b<3-9L=g;P5S?sh$D}YtFJkJe(khI1A=>uExY^3tmPS5FahVyAh#PEU+Qm39!y`-u3X~tKmp2 z`j_#O^Tz2IbJ)U0Avuga_~W_BB;|jn9c< z8=zfiA*=L7^+vwi1BMgKmQEkGIWtteXYewWl;hqS-d@A}LNWA=4{DqHfY=db21Uv& z$MgX+J~kO`ayn3&f6&~7V6((Ga{?NceuKY^L{sEi%pv*wX3KriU5t^9ysG(_j1D*G$;4`g5PFVlveu3NG^3Hqy$>U!1M1}tV zb0z%oY#DY@zQ+{#dLP=-?~;<=IB2TG9Z2pl68>+s8HJU0x2i-w`Rq=foIvc&a0*i8p8IwRWjGS*C?=&Y2#z zcJ%Xm9-A>butwvlzWm;n2J<#+W$aL_Zsxx_6*>`$YIx`s+t)4o0%q+6=}r8xjCAw?c{mim zYT+d6*i{W-=vdauK1tbL zf3IAzsS>Yal@RirbSyO3QuH2L6McbptxHzbJJ~r^z8XzbYdzx{R8?yZd(x)`n&V^7 zp*fawI@Y~zou$()^Zo>qO1ta%q;hGoSI|*L_a|->rB69}ZefJ*s{uZn31_i$yz8;P z6t<3FD zb?%myS=sYMc*>*H_*JrG=Q(CYd8Rw82&~$$TO8x|@UAGZtvqHkp4G&5Vs?(xrQu~Z zC#op-qPQG?R_74Px8FYQ(7srlQ8#OEY-8@CCV9QRBW?O*A0+N0U4P4mBrfJ$9t6V#Ysu zpRq?B7-gnzrioTytK@W0(@&8*{s*57T-MxT8*V~%JXVYp%Je$V-cwGWdWNGOj6dcu z-l@gVH6a zP(tj4M_8;!EwfNrPX%W68so}oQi#_bvBGGNWo<}J(ki5#rn(AqsdyHA=g}B^cUV4; zkRO=S9F8?d2=~~8e?BXd;;}kduOXexWqAzu>`yz)W02gqvqniM%5)t4?l`0(?yUnH z&ONl8D9_^~%zj>b?3PvQuz5XGE=n3nm4|yKaBex@E?%$YF^YR&(A)MIu#f$2fy-qk{_{*!D`;g z#;JyrOKP*%#*D)l4~$D&j9yc5n!|51L~h`h`*uBa_>YlT0Z$71c0BW5mqRmg_Vq#~2{gVYm)7Db29!|9Z36?tS>*VbbqJu@fTjrch2 zkl&-N@LbYz@55AMtIx|+Nllt;X8BWltGTd#3u?Mr8JfpUex@ zIA)J(SngpX2L2aKE5)^H8{luIv<> zo*U>y0S`UesEKDUj|jhKjktId1|x!eJQk6+DvG}J%FzCR;C!A6d58PhN%b6J52PLr zJtLYu#CjZcjCr>yF70{{i?)jIe6CDk^%*k7ROdy)nKkgY(LTl~vJ65B(p^~Ugiu@J z7(HG!I1O_?c@b(le1N|592H|KzO7A2g;dclk6F)9-VflO`JVc?FBp-XXo;a;QcmU< z`BG%JX*8ojIKha)t@Z1C^ z0@vqAde&Y$@0?;|GXs;taV`h$T1Q4WAMe_|E%O2EjPO2q7b)*G z=t66tUsxMaTKH03lhBW>pz`U@?NF&Q-&<2y-LdT zs`6}d2@htzi{ZUv+TFR$)q3OKW9F!O6=UtSo_yl`Ci<$WZS6c>U#{q5?=GW9ySJzQ zhN@_ncUnh(egfw|xxMS^Rjz(`@5&2;}@C< z?Mlb7gKW~b5*p`LbJ5Fe#Okvc^o+>=M ztc!w@IffC<%s0xxWP}r_1?tswj_Ky&kq5Y%7G(Z0+oHi300^{EzCw zPGe^k>jj^6ZpGz3>{y?oQ<8<6-&Y6F*Cp zG?uEc=kgTP+heMlBKKJ5^msG9e@5+2m8GD=O~oB+$|i|}!n%NwkMu@J_(-wfrWAUx zxUi^+;o=Ow_cOho#iQmC?i%?s@zQe&W5j;6h_~H~?uroCAwAO+;U`xqXr=SB-#rlZ zw+25^-qC7@vBPK%c~mr)l2bKPkQ-W(Z*&iwvpiQrY?YW-iOwsF*k@r!Cghk=UOM${m!r|jp7b#uK=i9VOR^-<+IxpRtGMM7cz zCppcZBV+We6x@w?^7s0Z@qxxAj}+^N?uG%=5fFiwik~8$l0$(ym4xj-P>XN55C=o$Oq+yftH3 zxoMt7>)?g)Oid1y3$J}nfiol#iq^TcMvEVd{E=1Y=rfNg-bI9^;xh^1A+7tp>e$|1 z`kQkBYsL1i8M|%G*zIe^Uar_F^)%WOUn;!8kH6NtZ+T(}4eM{lAa{&k&tX{8_mrF`K3L|NzNr_I z<@(qvW|Spdwb)Yl$&BVyc7N;YebNco{wE6UA71||Vw|!{bEr>Xau1K-Hf8y_NcJ`I zH%q26P8RZQ3$`xlU~5M1Jfoj1dSpte4r>fBvivUn!}|7^Vjl=?#=a6Vf3g@Wbq!nR z{i%Y=^{9_6u+wwrdSJ<6YucjoC%wXRwrD!W)^r(L9lt?auTg}DT-9-NE_j4_N3M0S z&##6z_|z(oP8Fl&u=E2O!Zr6@b)8V>N?o6TU2pEpiCc^OSpVmKfxG?LO@B1^^cTKY z;ahk=1@&9dcl6q=t2OdD$dqqjG%Y^a1K8uJKtOA{Sh&+DD)$ZMj7?~F{| zydQN4>%ewzUYoSrMyogeHaM`sfej99aA1Q28ywi+zy=34IIzKi4GwH@V1onyw{zf} zEpTA^ZGZap-{||POW*xJ|Ka{UcWIp`zrch4Z|BTL`!_hS!GR49Y;a(M0~;LJ;J^k4 zHaM`sfej99aA1Q2|Nc4P^?&#UZfw2bocDhH!EcgZK)+SE@wdT&4GwH@V1ol29N6H% z1_w4cu)%>14s38>g995J*x0z zW|pV799meMn_S+qt#yyqIp?&l-m*occg2sOWc|ATAzkO{+N>-7iu?j}_`YlF(sTRn ze&MgQ&cE9$TRjUsKXBo%-TmVi-g5WH32yvtaA1Q28ywi+zy=34IIzKi4GwH@V1ol2 z9H?;M^!?61|DuOIY}4smmM0I)PVZcpTA7=kU*0*nJlR_TckUk@=o=r{GTwL1o`EeF zSK=<-^61)2Ft~FD!4FUzweKR7u-^ zWP0l8(#qV$TMo=F9EebIaL6N0-{-vZFM7yBHl1E5>b7@r;pXWnS1rFkzgn|A>R+m2 z_uHH^ZERt7WqD>{zF=AfoLjA0C9b`0$0rx3j!b@sOuOpb^DY{C*rwLZ{K4syOSjBw z^*J%Qvb<2>iAoJ7wpO5?d2ihr;W&J!^DlbzC7VuPP^1}KUYwafJUD-7p?887W_WYi zynVxiPu@4MWpH@sz>Qlj&IpPG7jIdZuY_Lw@Ip>5e#G8$&b#Q5kKA-q(Y<9|m!@x7 znVz4TuE9H1I9ZE)`26JD^rMvW5vMQQbpAz`sP0omo>^70+jA;;<@IgvlO{nnJEs<> z87XaIZ2>O(@)2Su>-tr{!1K3!@oDeg`lZ=(d;U}FvI}n~>gRgC)${e9ul4+G&tLa^ zq35$bpX~YLo{#o?sON({@9uef&s%!l(DT}!SM~f{&r5q=-18GX&+GZIo>M)`TI=83 zGu`v_o~QQg>lx`8?CI}$e9sjwG}o#eR8?25&Pz6G{ z3v;f@U}|MVw5241EE`kgoXj#)lGV04!y*TFd!^T(v}EI`e_?)kadK)I90b#gOqk6v zW7EsavOSil9cdbCM?_nD61AgtsnmtVQ!3`r%;A;ALKb&UPt8s)P9LO824;)NydkK6 zVRlwlr=(|iy0AT?s;L2Ej^8`UxR7L)nbmR1DQ|IGHd%EduBdKV%I?L5m17xAmg~&q z;rWH7<(a9azGKH`XQql|S$xLlzGYc;2UeD+qcy{-`qHt~pQ85R^ObmRbb`*rgRC+4YmN@*&~hKUB%g2f_HEz7(%qtiq7LS911G1ZkFDA55=vJ(m3`yh$>k$YUYTAzwR?Jg zT4J`ac;iwn+hYrhl95{Q;GBb1gXwW;&0WQQ(ZJlyG8{u|vwtKZRH0EEdQtbsXJjl7 zoFx57QQ;+L7Qk7lNLO}fWmXb0xwO1Wf z(ftN}@MB=ye<%z8tnTkuhA%45`|F-OU!ePYm-nC6?i=Bk>bhO`JoL-`{k20!{?K2l zd+NyjU#mX+AUPX&JM}@iguhC8-mARdq;fAT@8?8MIP}lT(mr1Fw4Jm)qK~x8x`&oF z{#usjX@v)WuF`$*mr?^iu?!lO@Cdj>(=c4r*u!bSL^z9UC0Laf2}Kc_+i~6hga)jM>=TkmEFHlg@;_d zQQ`DG^cRaK@Dtv?BMX0jM*qjU51KD$_w@62UF6%R>l$7Cx(0OZ*7ZbPlAUudc%CwD zEuT?eZTj39_0pyfol)9NzjsC)+VneT6uaqzr=OwE-#UFvpC34VP@nHVeWO0#cX~*l z?>Vh}H~q$GaevdhPCrtg?>wy*Z+gdR$>XNCpC*U5E$ib~59#AAH|gWe!}@rmss(3jrb`~7k9$2#HTvHV)yFq}P#?EntdFlfSRY^6qK_}3alXKC{tIOP zvk%b6XON0>VfiiSg6j(=BYlrWbS`IHY@?$ddN+M+p^G0#|Drou_d7=)_f;kJg9G}D z^8znk7bv;Yh zGj;u^@*7Mz@z6m}I?_K^*Yk9}d7%Hg@qy9NzQN&%(Sf}qqvK=!eR~FWPV5~W7#rI+ zI?&rUK0dK`WNcz+q`zNMRCdS6)Y`jJl85q5(0Q<)J_KlD1 z9o#cAK5_lP=-A-M@SeWmorA->%M8W_hR0OHkzKn~<1uPI)VDj}(7@2(@UD@*y%T*q z`*#lR9_;TMqA|M$cdNl!0IeGu**83%Vpm~`qjvkob`1=xaeGGwhsS-pYhb+p+C1R7 zPx`U9JnLD{8a}sm*~Ss5pu` zI3_S6qNC#&P;nR?$M5~^_pDR3!wHS^{Gaccxu<)dv)`&!Y1OJ#t5((C_nJrk%Ykpw zx@Wt2#jr+Bp7FDHed=+y-~61}t?iJ67wLM!h8y?U`JwN8_6HX{>W(*_^MI>npYx!X zT)d%m&YxfQ-=|DGe${#R`tVPdAMmaVZ=3(Vx6C+t<=y{y^(n_)_JY6p#>i2>JNL3r zJZ5y+YhQHQ^A;U(+UxFq_RH_L<4ODNc<{k*{O7-Y_b;A(-?v_}=952t_TDp>+;(v5 zweuhSk6SqYxnTcE|- zvrant^b=REStb27d;4<~a)Pc|y7;v3-H9zM;nwW!W^Z?n@>!uM1_qz@3=Gd!`~Dru zgYp!!XRa2>4|L6dR-g9F)5j(@jJIabblg(aN=mEvv}a%{b)#OVan?;XYjjF+W9y38 zJw^UC#dfRNF09g%yGj47NX9Fl_Kq9m0z7O~_F<=7wCg^~8I8`Ty+Z@RsUl!%<WtG>9Rqt);h&)c_~FE^XFAEIY_N9Wm2Pfz9_m?-ErB(+OerD4;cK*oMPta zQd#U>J{=`KBnEe*NOp;$RKemi`(Eui`%e~*;sfU_UAsY+>49_9m7^ygeToL!)1Ptj zaR<<6i|?hGKyn^cR=PvF=@xI98h_TatLduP`KaI-;&0^Bp8dq}sX{c`+wWgctWv%1 zr*<=___Swh1z?KV`@4pwlLVcp2`JG$eXSSXvv;S)uzGh@( zpYQH>&WrE3^QfO*aqN%pyZ0X7e&y}!(}-qrc+kmH7rbGQD{i}T*NgZ2==D#1)(5Wr z^XZ+@Jx9@t-v8_w`+i}Mi~n=)?ccWb(uaKQ6)(T(?T7vFrW;QF@yc(EfBGK}%txQd zOP?2S|KeA4>T=;TuNisBckgp)d)DV~`oW_6UwHTV2YmGIwYT4p>ViS^wjG}Ql?`jw zyz(bsY`y!|t-CD$o2(+2z2=;&Z@T}&yZ8CPTaJ9wy}$eTmmcxWAAakC-#_B?%SO)m z>@JtA&MR{M9L?mfoYQ)o@?@aY)d0$&JHB=}X>8+!l*BQo9Me?-^F)va$eHsNjvoJ% zodAetJb-4wHw3LVYo zf|FmYjwtl}B^$39Irf%6-R~*a-14h$Za(CbpO~?9ug`p9yZ>}gP=v-n>(1Xisl)px z32nN4@10-swy%G8>MOr{`R(&RJm<~>=kGG>*w-Jh)8~J4*cb1<`hfFW|9$8Kj@t5~ zkDhVOd#*h4Q5U?cb>>ZHyyHKfcjOT(-tw{QzWvVMtlWS7!eig~=Dd&Iw5wFL1n?N; z&-kzR(W4dG?W0|C#e3q)$*FEn!F0H(fg*KHRJ%Q~cFC&o^{w`v-JbF^P$+sxX1CF@ zmy<*npY~2qm-|Z|qhg`Ev^BduyNw$8jILl~muAWM%8lcR=65;GjHwkXC)=~1Wp(px z@>!|)vsJ%PN9`FWjBlCj7I7EaLL_|JJ8Bs^HMVliq)6JcJIdz(a#^Juepb?j$4rcm ztuHhR(Mo-=_|;X1_d0s%Qi)T}xNbgoh>(8f)1EEDQ^wXTA8+ry|M4uhd&9r^8U;I{uPTRc3$(H?~NyQa)grJ`q6j)>8Ouwck9RJ-|@>iSAKco`YZmhaBSy4 zzWC@ZZ$0O6FTe0TH_V?i^BK>*bp3Pw^_`!7)$Z$${?R{uYMg zd;U}F^4~7J=#Y;u8r%IThkW3Nzj*%5qqlE8=dPXq@{51JV*fK=eCXQ$TDslizy9<4 zeD1^*pL^3+cUbk8w|w@OU)t$~*Z#+Ae)5IgkG=KXyPfyVXZ`NjThDvseJ3t`^{nmQ z`>UIGxbgbSc0FY54+rh@)@z@8{|A2i%$Hw$--#vXzv|$xee~6r?|a4tcU;C21w~pNTslR=}mR&DBchwJ9es!N8zxB{x@AaXv4d47+`@P@!w|yS<#yu~3 z?H4|_)6e!ko^b_MXe$`=Y~t`<^SG{>1;d?DH>vYToHD{_S?He?DS; zu`X-2;GUzN?W%=Ynpfpjo@(#You)CC4xAH{J*Le8Saz#4!miAd&Lo`%VaMwGq~Z}# zb$F{i(sek^o|y(=d#6w*Mbg=`7mN5Oopeej^+QB!wmztiqm^G8*T;@eE?K{_@PKs- zT`LNdABAd&?=X8-`+iYIMn8K;N_skWah4cx-7gNAB#%=POeGi%)w* zktdF?Sw6L*HM^!Q^BoU^v@9lHwgU5Fet zP={@=^|;Kl;?r)~#nK_F~B} zOYWx}^NiNWWLy8oMYQraGg^;?TA%h_ryYH|7RAS(sU_~Ij~{*NX;0U>`_$u3IsLd} zvm`%K61*3D+Iwmle9BW#J9YHwryPCE38RnKdb+UHPc5W+sfNw*cg|=rlk;is(}R5U zDNlXMajiB6KWo8*dXSwu^8BLKpHQB-Quy@A^SGl=X(>e~(SEl6AcZ;N}q7uoL zjN~={)kv~6BYE_nGm;&(@ED({mGphlbhUm)lNWW~e>c!y%zfmF_F}2~U*>tgqTN!k{v#th%t*Byd1W5+zC7md@|e?SrZnxHrpDGUADNGrOv0G6^O1Q_E`PwQXD}$7LDGdRV_oUaFSj^dFYIVfM_fE@{tNrsE%~OBR2` z$jqdpMmq8H=VcVX5Jk7^cZq6@ts5O%x+H7R`8%YBkG!ERpH8ho9T8{_KOik6t7VK_ z)m|)pcuiJ9dxlD%+ft1F)6Na|o|*I?k!nIWa^_Bz$oX0171hWES>(g+Q%Sini~Mjk za#0p}oObTI3VH8n($ba7weh-obV=tB!g$8PJC%Z+1wJEhZ?}&Nog55Hqor)E^b0?r zy>E3~HPm6`o$bX^M*HoOYS7+M#_#&Ej-OBj`VXVOeZQGWZ|yX>V#AcSl}9Jnjccu* zsBXM}8ZRSPYP@yRpRrpO^Y?kouN2dD+00nIcIkMQ?DxB8?3_KeZhZaJhV?nYEql!D zPL1t*t(;t&CH~%?Gt)|Zr*Z9*PbzWY56-BrdqApLdj}2f)njXxj>^zWm4E2oGt=~N zA6eon*Nl%Y*)YWnn~@#3&&=dV>hN(LCqput_5(9Mb~S3&H&g4^PGr*YdC_+@>Id8H zqe41*_5Nh92*MlGZLR2$54RU6u3bH<-pUA;?3eZPNI{^ZW}4=^MXY;Rrm%Kcrqk?` zqd2QFl1m?+_2UfbC8_Xk`jh@9iQ35f^2%Sme@Zs;fjs892P9UsyS=%ZwO`{{fBYk| z-uy(ny&oyZ9Tq0ZSuRs2w}D%F+Yc53Xv&O5P)%E13A}Ea&#Dm21{%oR75>ssFI@ zqWPJqcH$Rj@ly-x@k_G!XD&?f#qjCo{1e5LhEF%?Kd6~?k?F`yg@yLvEX(!|>-5|K zNBCggO>O;$d7pfACIyK^{OgjO@R&vtv9L>WOGZ+#up6`Nh{S?I19fBmteCC_+AWx~ zjH9mNrK+0o=FTH$7AG|d-u!dB{qRt_omEj)wmdH%(0*W*O{MHdzE;TBgN{m>x9_Em ziIyVtANCybxNOF{*TkCT#3_7=nuK5Aq-TD5^$C~X`2<8|yO}R&&3wVVe!SiDp_u;s zKjXj!i!Xj|`}~6syJ%zWi1n%K#wR96rCtljG|r&wAp@wd@8Z!PzV0PU@ZZmGia19+ThiLlnvj%j(8-kX z)>2)|T4SBCrLC3nORa0I)%Uo5*XwS%zQWVP--@+}!Z|qab zLs^95mx@`AdFbJ~!odk%s4L0=AEk?5KKwpGS7>iA7h^Z_XHSSQRtNZHsVAO*prfAD zi!_9B|KdF^-r7EY-@{%!QJ1o{8`ev8{r^e6&MC>}WFe^I7Sv-`PHMs$*NJ^hcs)}P zhjNb{UpA&=shsPjJ(F>B(%70YJwU0Oi8#~ZwCE`vHo>a-oqJe^my^^Ey5y0%$Rorkx|Cn85P{#XIe*t#=dV2Myq}&@@04G9CX-O6Dt>=CA47Sqn7Ep%Wh=x48{$gJ81q*+x_Wv zE8ly>*`tr#__!TT-Sta_dT5Gxt|rZ~*5YE&PH0e1X&^GxSL=7FV!+EZ+}9Taoq>!p z7*pI@4SQ(Eq$W@iYYN5EKW?3tbf_4s ztCgamW?Pi1PQRv5HT9TDQ9EvlQcn~))I(gm)t%Z*C{4AMgD^E3lZsrS`l4h}r}cbX z2h`sZ(XUi(P^RU)CtIr&4-M^&c=)kIw2=yBib7u34S}ocL{B=nNo~e!xkH8OUoBow zh?nr69lpXejfkeU=snn+rGq(%z`wH7X6xFqJl?q;~b5Gi5(skS`K6rB-1Alw0DSM@H#)>H*&@t!orE zCA2|l;0UII>syt_JhjJH$XY#yURbUYCY2i_916nt-B57B^7R}c3=<^W_1`2q_X+(( zN{^IW(t2yQh#9N{F{8+{F5@Z2HA*rKQ8ZQb65}++m?bO4qCa!} zh(yrN4N6b0NUTRC?N1@*al&=}j~CLMkE#@cE~)n}d6xAoDVU!&6z#N}R%yzuCKh_e z5Tl8bmPpGZ35;*}z*tPUUUTC_rclb6oOKqtl6 zbzFaay}W24T4X|XK!?O=?H$vkhgPUmdJ_%E%*t$4)$H{UOP}XrY#q2;r=nhU2~09Z zF7z!nNz8*yBeK^RvMn>AUar>|X@D#ACiT;@1|xNYuC8C;iJy%2cVTxZ@+^y30+}0v}AD-buOV~3DZQNM&{-%O*jdC7U36!+3_&r3N<$hFD zYxF%=SD7aZ3vJ^%p;6Etqbi*|7Io{rD9i28*1S$#(_K@24sFaiLN}=_M&D@Ba(`3i z;YG=Z7d1dfVujP6NEJ4jm+MvQyorMTbuW)<+{PVtF)^ch)+m<&Xpx1Wv}8nRq$-D& zbJ(OBV*9O-6sDXb2Q(TZ6{)7xwv&PmeUE)$Y+HzVx{6m6qpcchZP^rx-9fl@1avNg z@wTLpWq!k2j(g~QpR{)sk1CyY79#@Ag$>3itW$e#Tc`e;5-k=Cx&v*`x{1+G4p=eP zq=YV!y!v-u=XZYRcR}ZOVdr;I@k>5S^$%TW3o)=|2Q*n|D*uj(4od*bXoKSD7v^2G zN6?Pyo*CP=6gs6&k>-Sys@&gW$^|~5C4J|0kG0#fLh6SVoi!o-Cw>F=*tq06AHg z(05S|YbtCEdLXEc;W2&ATn@ME@uaPXVm&ag(34)FF>Wl+%t++5PBk1W?vN&WlHMYA zrQ)#c(J?6|Y@!HZG)-g_tChw%lM@;zP?8X*O_=uO>B=#*0-nYUTThKdAQ_$$XtDWJ zmP%GTYYPb_yotir68YE5@QR()wzWHw4!44Ld7W3Q9IsyZZ7wS~LtU&Zs-wt#S`GE= zY&pXcuE)pNtHxkSQA>|&YtXzEjCO~vmCP?IB(qG7UQbkLRuC>=_)l-6kJ30{g@trL zNBA238xvjl4DddX#_I|^17o6xf>{cLMnfOaTd{JC*^5;nQp$)K)o9*Qq@xt1mVBY0 z253^Gyo^0hRl{giHHW-Wv z6zkKg4aOYu2PJ(37u~yzYR|jaJJv|(9_x0mx{T6@sN&Jqb2=#!4Pl-sDUVTO?vd{x zD(hwHT%|VG7AprNCFgCO*8D|Fa0d@psIAB-GGXkV_lQotgnlGVf2uU+S(lp{OW2ZN z&F?sRh80y)40Q-yNXbqSmITs(yhM1CyLyP_wVqc>Gg|1TN4y4xpz~2 zX&Wh1h%Fb_d~;#7Y|xxOuV~3;tve`tv#e>-m1hL{pHa&=M^@-BZ2Hi?F3U5S^@%MQ z^x0+Q!Vp`kP|JQEDm*?J;Ss_Zz}|re#NwGXZHigkGY0+E zoCev0dsu|Ywj=Mb_*|=m<`pF;JgWHyyEWO-<gcf2o`mQ=Qh`~QaThO98j+Bn451f;6KHrWOJ(R~X8qw!y zqg3lC%QGx%hk6_m%&InzVFsdR@E(f^Nk!_$a0zVWE6xiXf7kt1ef^x@ZBfuBa=o9r?JX$b|i=}hEQnVhc+uvwX#*$Gg3!MdjSnu0*U{sneV#s5QsA#h-e-NH~Ft3qe$|V1CES52|41QnRZI;RYd0H#@=*H4Q7qW9RC{0?!52Exw z5I%cmj=?#zN=0Yc-t5;}=6zaQr3@)eX|a}lyd-)jxNmvRDZO(Ud)2lq%5B6JrrdI< z=Og3`{eh*O2ubvcuWT>d{=(}+dATK>VvtwX;Mmw`PAEfj)>AR> zmF+dtkOB>Ay+n!d3)`X>cd9Yvwk3X2BED^`Cgfvms zc|k}MWt~HWG*Q<1Mo1Io;R-KvIN8_1N%UE+H_Ts$#<>edERxKO$EZV-;h`(%F^C!~ z(3VFkBYKn*B-A4$8GQj2;hqJnm^u@K{<3d%V^JqOD&$qCkGx|ZW@iQ;G`b2dq0jB} zLRV2U{OMlj#A?TwG8Y#yzB8Ax>7l~|jvdO}J*rVy51ZQ%Hcw%!{i6n~7x5{uLV@ep z-SC|JW6zur*4E4v)Hg?o+vQNVtQtn2R@0+nX+t^O);m3!v^cq;{ju?F6;aD%v0GD@ zsZu>sO4eV@vaxD($q|nR$B!8O$a*YM5EB|Qg|ouJj}vvp)^hi%Ve?dF9@e1Ab^rd%YIqOb@aC=PUdIpBr0n)Ji!RU*;G)sK)ypjUYwg_-D965 z^|4N3-5JQ%A1efGaQdJeYi?rAq07;T<@ma6m*ZKzxVIUJ=ojX_)uns%d5S@kCxi}9 z$h%9_m43~`8Tm+29+vvDDYWWyFQ*NS2>0L$`MbaEOJipqS;7YOFTET0^W`m%d(NH2 zJtslp9?y#B)f7Uh^b9j+3Uv=N`k0^X^+CoNNgj9XZjZ?-ribhsTb|uni!=L$?n7d> zlqgsUpe;$yS=Y3}4V%Gv6KCEqZw7S=iIIrCKx{hs2(pg!op~2~x7HxB@42~1i|(+e zi#gLh;957uY%QfhH(6p+3AB+JIQAykcT9D$7r7i?F0G#4Wrnpti<8|Fx%Y~7-o0X- zGqxDHQcEPBnH*i^`L8)Nt%e+rj*mPx7CEs7W5q*!+~e)Gy;crIH!|uxg1n>ML}96Q zO;esu9dYmm`QZ$DQy%GDZ~xeGKFbSv zGSO5|X+;cr(wdZ1tXrEXv9ZzB_UkiRnQeVm1xkGd={V@>!(6uK14duQH%=u z$+I12lcDhbC4L6Vuj+4Tpm#0km!@2r>=R~IpO|tynZ4dW0QWX4EqahK0IYxEj( zdD`WH1NNqInt=J6F-R!33wgnRmx^x(37(XN&UmLK*g|Mbp3Y#NVKtQIgb0t75S+=+ zU7@*xCc@JhGVP1_wv-_V}6bmf*jH29fJZUN4I@&d(HD%j7@i20!(*zGli`iQ0b~xF z5Xs@GqG|}Ep3%)(1zD(5O>F}6N)^<5Ob|eVJrt#BE$^LR}*lF=jiDeXS$GQ&+ zWXrPEgt$d$=#a`-pFs!Wn zK#mzjmVGoZ9N`HYMitNW^rK_1#&n1Er8~S!H&^05_* z7E3gtY*+_PdBz$Q9gR+5W^1C0 zypm3&KAuP74(Z+A)S*j<$vLO>{L+*!W%ims`qjQ)y58-e2K14w+j@QS`0^Z8 zr%l?s9#@}*Qm-`ew@x42OV6Qthsw{L=1-0KtdKnc=A~^T=b3EaSoK!V7Ui=OHeJjq z^h(YT(p6*et|uz=uxU6GZodbsxme#(5*}xtsD%={3tbiW^Rj#NQG_#6yjDTyrBK`I zjCuQGu=xDEEVBT*l;>AHCs2Aqa4KTVHSDkCH|1$pr^6$Htihm$>qri^0rtJE^4PJ;m;yvkgw`{T7GrUuFUsDu zL{p7n^aKxcD$DNm%h)!Qp38TMR$G{gP zfzg7Ej&?Ef%;FF~ec^DgEWJWRzmn2nA+_cZ+KSvah=TZLO2&r!s22r1^7^AW2V{fQ zQ;Ma|o|g#=ziEEY2!kt(M|3LlgLNwN3nAo3$<#01**Zu#`i~IiWqZzCqV>7MS^wvL zff-j%-L~JVV|aGryt(ZDz$Jx>HNn%2lCLCKt7qV=4v8=jh{_7gQbDP_bcDesl?Tnp{3(xGwL z*NT}7tH)AGdssiPV+EHP%lP#@^Lb38S2;b+?1mK6QfkAPspp&1qK{)%C9S=X*iF$I zv^cgUeE0m7d&Ef7r03zRW!qZBbmV~r zl6z4#*T6E0UZ53lww_}%O>=&X%&?~FqXjz?=?Q-T@1DXxjJ%*fvC@dA7p$rBczY;p zOEMN?O<$&olM=LtJ&KgS=WcW#vtJ&QY$aQ0*cDh$Xx5aTIhT=Z86mgu!IjHNb3}7H zLTAJ{G*9x9atc;DXe=Z+r>Q@Y&_6a`PYt3hkMP8S;5Z{7g{G%b%o)G`j5*BOxlBu6 z(}!qj%Q<6-p6^G;`ov=j$}%Uy>W@5`8QlAM9n0nVtPY;Qu)q72zDY9xx|tfYKV}OG zt07NS?oZF{UaOR)txDI6+jTmgq6^<}wd8(WxAt@IBt4qvkW=)MxU`$joXosuE00w~ zFX`%^W=i8MAIJFN?Twq;`JLDO^;lv=LN!n6m?u_sFy)umPq|kw^fsg0dzY3EpH;Di z6!&Xd=c;X-`bfI~kr%1_zL|Om`Y=5io%oS-YAPY#S<@?pch=T*+m_1hT}twQp)Ig+ zu`0crz?k6<`)K%DBp=IPmk;Ni7>V0bcKFs(tL{l^ukM*4hi`SH@wuSCj)x)5o+}eV zn=`*fz0hp*aSEZoSZ`KC@d~l>jQy#|p*$AK8ilsUyw1Hxic{L2hw2d!i7bhy2D<E?hH0?Q=kr<)N#U!{$;5 zGQ=w1b~@))Ir(OLmKiDC!(}`r_?XJ!KHt$RmX%ZZR?F$~m};Kv8CuH9Y4BRxi$}lF zGx2UbEI&pf?W=~N)2d-xyJ6{_Sop524Y3fh);*(Gwg_VuV|K@WW$nn?%>Iq0*m$xr z;%w7mxiLGUap`~jHeoddr7`RO+%NFJzxmY}=U)H4rzq^XjFzA-&!DWWkn7c*cxvxe zB^sYqGIIy#`uR>Rwg$G%==Dt8Tk6V)7ITS~FG1XXKveU{AN@#x??Vg6qwBMV;Xs z{w5?Xv^gm}f2}C&5PPS>SHc|PaMPp}Kk|HT(e_^P=o@NJd`JK@)Jpy1ITL@Q5wHpv zo%sAXS%V+WK0@zrB4wmwcEEn}FRkHZwZ~D!d-n7?g?9(#(&voZbybR0Dvfm` ztwjSf9(-<+9jhueqtkjUQKfwzTIce%JsrJ|?xp3a{)5VcGw5IU9q;ztmh`j_tAKG5 zUVqyZ=ppW~y!gdC*|Z`e2RO%EneMDnn43r!@nHcY5B7=Xah4xuCB}XJ#C)B~XA-L6 z=(_%C(@aiU=G17L{bhJjkp?skeSl4dT+&K*YrS7&-4q_AdK_L_^Nlp*fW9$Dt0Cw> z^7al6{lM78bH=$QY&c@k6#hl}$kE}}YPP59)&nULMfn|Z^|*STq<{_&Y^;@Czl5;! z6Jo?OSD>f7yA5V1Vo?z@RqS;*jHkGKcUb2a4-D;No`n<04yo(mVI?-l`|mN-(5$FBA|F*o? zZ`#uN=80CQ$Z@XT3yrSdq}gD;?k4oh$+r3G`#=$Ym`Z|rLb0ZCia>`IaehPge7y%c zs2##LX?d@;-=m$-LX`^QE!Dj3I;C~Uq84wRp3pb(oAf)cn|p-u{%vRu>(Ep&@1-W5 zxq)v+bo_et$(aR*qjh{9k>0kvV?m~PTOW+;2=j=DeulTsi~eN&lcTU?>!Hjs)lkN& zty#_il=I2s(hLEWQ*g)3?Y8-@Zl#&ZxzhrqFFlDBvE>oOO3QECbqcS`DL2vA=k^o_ z2a#J_8!4Qzn9r9fhMAT*j`5pHi4kwkd*_lKBONXAcrrrj{nQiM9}PxHjQAK$O`-6M zycjXq%cNyDIDSVv((6!U8#xQKsDqpiS-_qm9zE>&4P^U}@#`H#pGK`(d|s!Lo_W#S z#+F9jVpW*#uz;|3+{zSAJ7OLq)aRQB!Gg`Xl;YrezJHsi^NPk}VpUO-$kD5BcA;HE zhtqCG7M?QC#Eiu#i&(hRD~=wej^z|(xuGBX#mA^*{h#{rvU+g(oLu39;;hY1kQ#-VY8mr#DVQs_H zY0M?D&xsX@MKz&c@3Ug#)4M)_`hxf(NW%M&TARDMUB8{wD1-OhC@gL^M@%If7Z(pg7l`n zqIw?Hc=9xVD6tw#Um~&2-PR#=UKdqE%k@pv5gzHH$I!qYKOw)Y397kLKK4H0^qO^c zx@WdxBq53AP<&I?MAaBp2gqhQoYgWdM(bLl`A(W2M2(Z~=L{LN`20!fzxjaf^C}Zw zg*3C$WTvnWzub*vFn=oyqxpPTf&MIOM({ExyNyF-|khFtD+c7BK)|quHBQ@y#9;`Bg2Y9$ssMk9dd%wr^iwLqSecUZ8$utSrLm#6XRR{EH_`LCMvj;Dm)vDF@%+mjaE zhUR5t^vW-%VRe?;nb$d|Vl_CJ3hQ_<6>G)8RM^(dRQCNa276I3Bg9F+VQ6~uAkV2c z4|1yBJjkhf^B||{%>!HIz1zm_bnjNdoee#?=UA_NntLE9dUFK5vb<*rtQ73mLodb7 zA~qkr+FWLJmzXid&XCtiN!z2B7_qq|bAm9}9_3iC09OoI4?ppUUG06cm|2?2eU4@` zo;l3>v{(DQey2sf$97JG$D^53In{7^^_G-8uim|#Q}verL^Vu#!<05mS-nSEs!#86 zmT2%&4dORmvOzS5_o2y8o7e4-CJDo`vDY5Y0%L)-e6L#IAHiZAj+VCLJMNvExzk(5 zuq7GOoP{5p%P{%$mYh^pZ^;K#@u(A=Tq0-QkBZ+Emeu8x5Olx z-V&2&dP_{u4CV^Y7Yyowd3`ibDruOq2KB&t%}s;3jJJAlod?V3yu!oWJT6na2KU4~ z`K|}mXK>5s5786zhv*5OTNzxNVd^uuC)foTT-M;8m_I~M%$Jvca9M+UVsNYYyPtzf zS};UUEEu9E78E-${bg{$5M#nSEraqI+!G6i=n4Mr>0tg0?uo&&!(T-mRMNsBdcu26 z{kgMnh@MzDL{G5SHMq`$dt%`bJ+W|zo?vHfP<;m1hQBR4IG4dQ^`arh#G)a3f_>`2 z^%>j~i-xdcyc5}9dKL}Q6N`rEiNUtPp+oetUIhL&tV{g04)NRB@P61QU#$zPO?!DGCi%hfSK@!gYm#CqFP*2r2S$4Q zY3nm8yxQTr#oH7f9g$Dk+l_M5b59Y%6DCjxX3vvd0=&#kp1JZ0 z+rBZ*K=`C+S_@a{a_?c3Ri%OF?5QRWR4M40bc&)^K4mKV`s}qz`lWx)d732U!>38s z(eP=KJ{mp^CmS|*`)>GjiE5XYWmwJt)<5>~A1ve%c_dFspQUm64C+ z-}nBBbH~RS`y#AntEm}7et+0h&sJA`$JIR8^{BtCtCtKmQ!{QYiFr%CubXm;ecm{W z);q>tc~nWQ&M(np!Up&rn5{4|&TSXDRFjNe)s#S0v zZSjmIJY-+OD+?AowTQQpPI6Xf3DWLr|&-%1UclTux`B@g!O z^8K4_NoyI1y+$<4wx_lPF+zgV+nNWuFHc+5WXzd(&TV1lmPEfDXj)UIB_C{(G=BVS zjqQWx{Of7Z=vYI;(x<ddZ!6#X=k?dLCP~6vtwDz8X1zx7H)-cdrv7L0*%ry{ zU7u}}lHU2`o}WRo);pJb)>qp$MpEfcSC+hO(;fZu`k$=VU&EQdUW$WLA;tHsx2w6_ zvo_uHRR1$QP5DhZB`*I@)$pFmPrZisbd=X~!o!qW%AP}7r4B#t>-qjQJPWD3r#jlT ziCq3Vu17BSY=o3+vMoG`a<`2KDb==EOp$8a=CYJ(TV}3EwQUj{skWsTB2AU+UPob@ zq;-p}@YvbL)@23bbMxsvrO9@+J)B#!<@dd^f?|ckbMeW-_i5nrI*Zd9<Bs)GtSI8tKkG5C%yLg!bB*$G-@gQNiS;M-30l@R{!0|tk*pQdnY#Mww7Mcq zf5{-$+QDa^<%~0Tfx;6P*egrwKtI~!Sw7uB9auHPd9RmU^L{zt3*lrW-_;%r?@^u} zPcLU5%nSDxs9us!>iJ1zp1EfIpZf*w*z#{L{l@M4UaGJc`pKB)d@O78iZbh^ICg&D z*yeo8Pbk7&pAN*QLjN|k2~KeK-~M7hpY6B8)@xRNPNX?Mo)>`YJmt|$0k1jr$P>Ly zHDW{~i=55!NTB}ip?aO5Mnm`spLin9(#~mD*0MhL#d^6{d4qEpCgpH6gXGy>x>222 z^}8*aa&^D5ZbQq!uh1URVl+zrY{5OtrJkyMvbR}=%QS<>ApR*%uCs&UXYWEorE$ue z>u4>z8s3|!>Kc4j@C8lcK2J}6HuZddiZy&?$Pt_yT<3CXp2cDW(Q$U#nZ>$X-WQ`LFt$;JYtxW7+-@^cn0-6If%Oa{8Mx8Jp18ig%}CLa60eD zd>^5C#^~1r+m=&PYnx7dSG7{v>xoZgLE(dK&d(<9_aU)#@Ies(I^0?qwTuOan*PL#a|q=5aO`lzQZP1NOfaFVuH zdcR49Hy%*mIQgFRO6>D;p0TOE5zncre({_~=oimlMC})EuG3cP=x349iHn88dt9$| zuT(rA&hzA>a`=Cb#=k+XD0q^XDF?|+2`^_**NqX(PyJ$c$f_P!EpDO>YN!t1r` zXKSV1VCHJ0WQ4VSYl1nd<584C0L`lr5^*!M_4>+ZO z?5|LIKR-L1WeFAf!%x%>TBqmd7Glix8$D(EL1UmyZC`>{Ka|Da7!N(tdmNRY`L3SC zh$o9(_vW=^-`hCI;Bs##VW6!4`Vltf@bN> z-%1>w6*$~~z1S-iXECq`(QZw$oTsb58)Q%luUOoB!`ClQHMo9$CXO=vM%bo4NHn|= zxw+QR;3Z^CuoA@QVmrNR-}ouLDlM|f1}&q6K91)c>urXTerFZh&$HRQ z_KwuHNkTvNr;R@8T^H;(bOKfabwlHa)~-rs)S&kpD0}gToCjGrk$dzv8iP^o-b(MK z>|aLs^qZ+zCzEeoH#Tvo{D#D)9INl{8%`FhsrtXqu({kgKZqAJf4V=dNq7qovhMdj zApQ2_R(qAx%KhF>)>M9+Bt{#M|DYKj8-#hbEW6D)Gk);7BH1Aey*x~*wastP=~V)L zF55-@Y+Xh|jElO&gkPLCHP89Or7wF($}>d%cA4h33{%6pY*RD(t=}pjXy6dqrg=q| zsF)#o&GSK3wIqfqznaE9){7gos+s~RL6Ul>!A7(s_x2FF4T&<<-Dxc0y?EV}u1?F? zqy+<=1CBd`6u9n1vYi?XLZa*dtdq+6OOy^9p@gly_bWUl-ck!IVl z>L<$IN{P-KoOgQD9=1gDo zksD7d47L?=YOjwhomh;q3T|p$Dr1m+!5b~n$2^;Wrb>Uck2licjkk1K5Ab(-!-A#` zO%mTL73=@pFYu`ctvc?g*MI(X3Old2bdnpkN10dXPCPucGo5y*a{>#-_2=(cGFq{? zcr#ahSHW-Pq$EZpS{;ufqdU^p^=728RUErHgXw+B-1A31C-hEPf6t5Gx`kaDzPNh( zc`Cyzg5LHG-V6TbDkC*4Sax0Dthqc$hP*4us-3r@lOKF8KX+rf^}3*+?DoqGuLARp z|2jak&g_>S`v$w?o|cb(@!$B}_Oi=1a8pn9TBTxj_AZaMge}!?WsCOk-@ozmH%K@= z99m>hA6qMWch38X{q}2{sH<~Bzqw$T^yJrzGfnAZcBu2di8|MJ{ZpVdy+hP|rYFz+ zp7NlYZrHXD*XBWO^++CcLX7h`u~x3mBz~8b*H_Gb=!Yh*R{y4DdDUHBIrg42>MPlD zKA{Kj*~A*Rxi(EtoHf@Ry@%(Wd5V0iCz9&;Wl6n}w+S>N1EZ;EWH38S%| zHp(A91-o)^s+X1CtCmeAc;#k0Bs>QBvxbATFg)`)6-H3xkk;vWUd`p_y9g;A3;gkyW&vic{QcM#%juq(~*`_B-T>sr#qSFutU)7gHwif+qN9?-n1vXc}KO} z@1~sJqgM4in`@ubRY$-uwWy{Urasj)%{9Y5^ZOeZU(58*+-1Dg`<6IHADpk+=Dq28 zi(l1d?>!z<@AltIpgd$I_VSu*%UT7?4~r+AmmM}`>@t*RAg{>m_v+PZ%H_H6;l1+F zZst%{X2bOc<)9hR&Hd^!Xl^XGu=gArwH%b+aC5D5^WP-I!pD=}+nNXp`ZH#aT=O-1 z)<}gu3LV>vPf!h_p>OPcte*Cz*1bG;UOzUcixPY71LX0{ADrCq4A9HwYEIEKI(%Zl ze=o_ttl`c;P(r-FBl!{?>Rp@UO^A1wAp=e4%~igdjBI_5*pU7J_0po> zSfATJvTeCw{rT*a|00y_>o}#%lP{br7$mp&6VR~bIizWZsE)mj#VG}AHCrO#m#DX+ zyt1n2#5-!JInTs2^*d*X{P$*%dAwDhl(EVmE8_`FDQjcR}aZZ;W84v)TuyulhM0%Bld4(N4czh_y3+Cz{js)F^bU zQOqQaY;659KVokJsbS?<-pj1hG6ON&*sE2IN6!&o4NvFZ^KzJ3uwWT&~)cvY_w z8a>Iqt!n=*FY-!zzh%Uj^BaqD8rxIhM}k+?Sn`K6q{lB+r-)sxdQ84^Ta9Htsh5{d zBUkC|MMp}iF>s+N)bdoPcDOC--svnyX(zav4;GBA{n-DlQXtdzcUa8TR-}{ZE z^GYskO7G#Z>h%1?*g_`ZrRPcZ`TX=7n0{)eMMGmT@Wf?PUjDl;#KfsHzwZ$3=rJ>F zs(7Y%_;NO>PQy|sSqWWYK46dGb+9*q+?x03^BC^oNgf8DSnHHmK{MiA{lN4;vxxWj(_L^OcIxrf z`|0*{hs}!LYD(p?BBq`}AHUew`QA~|oV_TlL5cOdQa2TOVtx6qHo^n^8BnnP&;0^l zdC9KN{g>N*_6CK$c(@Y*v(F01<)*K#CoP+B-3+&eIh)^$XUYG6?N|zW@q}G zaT*#6U)>V*Aic_J2OAfg2@iUlr7&Od&#X|nP=&|Di1D|%6Ju|y!;uHPQ6OwX{t7Dh z=z1iQnDlFoIgF>Zh=-0-5Xf3!JdNC=2kUP|bqsAHXKYSJR-E&f)Pv7! zxIOe_=tlHOep_fcUF( zap#=SFXXUFm)}OvEQxN#a@8x{(c^9@b~17Fc#2;s4@Qox3-Knvp$!F>>DlmzbDwjC zbzJXrD^1jBTJpv^u{3!HgjQPH;Z?Tu)XVCZ+UJ27gXqw0OB?$&)PVWCUutSc3p_8t zVGtw2RtcjO?LmFWjb2aQxqj)YXKnh?hL1n|Dg9{SbDW{+PnSHqL6_e6;SjIo>|sFT z5gL9~mve~yq>yLk?Q)FI z5=A)ew4C`Z=12e%+;4Shil)^hBNS;N7q1ANQ#u)&!pkEwsPQRrBHDT-QF}FHI|doF ztrhWb2~IHHttIHoxy7})_{QTqSK4Qt>>DmZ=M{e7c}3`a;RU+ViEKEC9B@J~h2n`q zXTwwcad^O(u~>alM`DR#?qcjTg?Nn{@?K97tL&H|n<#P((-cpQye4MM1O;;;b8q0) z1&>_g)dgqb9)85V`Qr92%)%FC_lIWpZr`d>NST|?%V)`$Ma|z-Vv311OsqR%9XJfF zdxgKw6)j2m!WH*ywJymf&C@08G!I4U%9z<4yD1MvO5%)H9zIOlsx(b)A}rpEoabL} zW7zIFm319@KM!r@LJB>k2eo(Z%I#07h{YyLCD9A$3v_1v%#FPYiKAGBezy}jfHoB) z(Y=7~!BfCUBtCGo4V?ZiqSp$ha~)hS*FBx9g(9KQy=m^JcI3LY&?aSCMj$H^mt2l> zO|TNHC3p@el%7Q!^e!Rq(NxQFxtt4LC+?#Cs1Ft%wX!z#UtMJ7=f7(nr`AHZmOU%w zG`(oN_G5mGJHKIy_XIND8FSW+Dc(|yJ!LPmdyNss+SF3&TGzv@LEOUT*v)Dky1OYB ziOIRrM3Yv1&3Q26vFdJ)rPZ7zXARzzyWiqST(r<{MIa>Jk6?YyShAlck4yXvdfMvK z>ml(-QmkbimY=AM5G*(RuW5f2i+OR;Z^R&3DbDqU`}MHJ4Pi@)F#K@PV`q4k9LTHW z95LUR(yQbgrMUS;P7w!6ajc8cR?da>f9@A}(La1@ulajF`H2d<0LqlkE9gjvoZ80{ zvW5i$N4%FzTXGur2-am&4)h|qA$QgQu3hhNWG7}ykH~V_wx812%1cghz4Axrxdy2< zA(IYAcW{RkF_$;z1P55znHE{JeO<-ykQ{P9K%K_r)Wgw-td1;o>=H&fXbLzRr@6{| z$w+HRUhg!q9>LOQEmUt!wUp4o%=64o^%~PwEEnfx4GUG$wXCW=+qq`ek2$^ffeFX^ zmr~nO#@_WmdJ0|23O((hhK|d1094pDe)1pAR72=%*Sx&v-9$-RR@B(v_Wz;BS$*I; zX-Z-Hq`Z2L^||9{XT45nQ`_J4a}z~=(!%lB3P>HAEDvEWg!fHhtRE=dX@ipWLxg%2 zLcYjjJ^VRpIW`Bg1LK^Wc+(;!dNv?tsY38hdDU&|^h~QU-dN5r$9N(gTwshKsUG9i zcxFv=2x=pbU!N;G%7_q3^=>#JSRLi_`GmT!*x|Ab=JRpLjXlc5yJYKM z(y(vlGx~0Q*vZ%p=2kl4ACyRnWu_itDU5KmLYy>q$>c^o@ZGV3Xj(-;SzlYA55j&8 z|3NQ0m)|QkKkIE8+Jj_!=Yw|pOkA3qY&k_Zvo8F>ivX_~J+|H=jMYFqD;{B-B4K3# z_wkBG&p4MYo%|+>_XIl4M6tKSJ-x%OTv%|C2lE5`!pCZ9W$b{FG^iMBq49c!Q?Gcd zaDApH6?>=Qhc`w-$(fPM{z-l&w>)mVYgVR?{eV1OIbZB$@(w-QJ2qMxZRkhI2*>AE zre&RjE+(aYMT|mQ0fb>~yMGv~!QtnKrhEz{t&~VbJe=S@&Vr%2$~)|#A@lY!iz7jy z`RGTF-Evy!r~&fsxgW1!%yQLU$oKWjDUruGYvZybmuhXR>6*^A^-p6C^INh=21f*FymvB z(I%$@rTGWVO$ati{4yt?Vd*#c%SbduuEiXZ&u_L&=mlF#V9J7{%XCjJu3tIKHeXuL zV0+R|zUOv+>5tIFyhja9%UedgKLwv@9dg3@KlckPn0@MQR~&rdKPc=%=E^i%hFz3D zlO6ebAKKFIl9JyzXv+O?e%6X;pu!}f6vd6$>NEzL+F-g3sE!&4neO}sfvuhpe$b0;l)bI$azwWFWk^Vp2h zfi)UW_2u`rG?=$pD`Oim)|mgQRGejjq8uK2#rAb`E_m43{Us&6fK)T1!+|k*O|22I zw3;Y9TAABJhMTD9qc{yvE`hy&cvLSN8$DW7t{1jzoU-;VGwE%aq1~`OQf<(_jLY0k zMWWDiO=0sIL+4jQX^~~X_CYzPYHT&nYJB7lkC1)xX6CTBpD=Wm$1CrHqo31Sz~iGF zV!sGsjFEC2{9*OST+%CMVVJq;g4mcqYol}uEMRu%b|E= z>$LM5Ll-oL;$yAnu&6P#PT5p`Q|V1*Hzc| z-Rss_I^8nwPoQIHcQv0>E-m&7I?5RQ#BHMVDM!yOj1c~6fX`;aS?nC|dJLDs7Baeu zdCFRf+T$5#eqyGq>SwpyE2gUdGfFM5E4&i0#o$$CqI2B?S4%5PNA+nd><3FDbsm(K zS=n<-c*>*H_^V{e&U4HL<(cl#NLaODw>ZY_;ayQ+TY1c8oan)JVs?(xrTj9&%!x80 z_wb^)9DkSR5X!gTKJL)ISe#KeYj67jZ5L3JyxuWK5tghR#ur{GXv-&d7HSoz6Nh?OI~V+e@6sdjula9_xAB)=mvpDIIGN zF3I z&EZ&cgm8~d_~)}SDV|odUPC&W%kmiR*`Icp#~`_JXN{6jl<7G7-El}o+*=1YoO@_F zQJ%*~nEkx=*s)6(Hm_&O_0n#n%ELnrov&@)NFS|0O6+%pDj`NbwwPzPa!l?ItEMXc zPT_^QU*Ly-v+L6qJ>)mfQ`kjFdO5Gqm`H)Oh&>@?DpC;}{L1SIC9&wva;jwGl*7p- zwb^T9#$k*H#-%Mruc{kQ#|*}M9pf6xgTt=kg4*uOTLm}=JMYGiZiLmr2Cwwd(Z?C<8_g9rPjQW0RH!i zrwxvWOVlgxJHpIo^N^j1CK{xkn6M7W1I_0(Y8iQCSl3o#B0V!F+Ku=)?U3K2t?*pZ za__^GW6RIWl;i9RLF1y088PK}YdXTb$}Pv*yA}INV(rB{ab2L$KyRLDEr$4;u|5PKliaOfG)>>*a; zsAJ5#O>t?Dg;>T#{N{6I3aieLDW*Ix63(oFzm4`WMv-L@QjqS#QYVDk636KAs=;aO zJ@#{jro#v5JI_%ursCJy1o=X$XcyKwGh#Y-#69yp^>JS?B74yiL%*b)%rEk#&g6|w zFR#rKHS2;{H$`0tqdZ&fB)v{y-)UR7>O zF5$tjen1sqwH0TwbwBD#Q9D83TzkUZL9NmxLkQpn0J@aql4R1 zeM42W%R8?3B!`fq@uAAM3?WUP7w%cRnWNF0mMFh5{hsAiowHdtVFR#dTb24@xWfoe zE2h6LmwQ$NW-|0=oF5sc)~pB_U$*(J=?BXax*xr_NvXZsOjfsNwPe-xY76WC+%GV? zYW8*iaNT&Iql<~Glk$(F!6$kWH{k1gPJ9T;RgmuDSXeNex z|J7jM^QMOg=Pv?dGgB@aBGv^d6yGYmV=iIzvMTrUrf7%xStx0lX>-aHM!oE*!n4b| zC@7g@7||&$A+(!0w!VHNpWJ@~mCMZew52GIT)iH)9c(Lv(QNJPbcq7%f&5qL!cJp_ ziuHoeI=A9-A9k!y(J9G7&F?L(wjFt=6&6mip|GU!RAL3$K0&74CZwEn{Nfj5?!_(& z%hWOURHu7*?NK#a^ibT>?{U9S_qn|e!s>Dlr+y1N!m+WY%x#H$S2}VjpRCKZuJb8B zqXB1g3vr`lm-qYiddJ^JwQ8fJm^XFU`cG>OLdsr{JkA~#pQ%S$%W-kyXR;J-sS0~8 zPeHvsrphUDk9AIuH`DuPNZgiADd=!hamSjnN#dZeE@0#%y%7>VQY^S73SC-USk%OD zaR%S}nO@JbqvR3p8u>f%(sK%9#D27hx7~~GiV)W!J<}B7o4XXW()ro%9*Fu|gKz5G z(Q1dW!)Ok9R5X{8Q#DhN8(NZIbPt@fJeNakm6%tF&MS-9XJJPsGWFYlN!FP1I-jnbW#BYcEdl;x*<>LKh3 zG=nyr$nF2-EdU7PVSu|R*_Jc|4B~s=g1g6 z8w&15Jo($^V0@r)$s@&jE-#1S5kZ&wbW)d6w{v%7dKZmlkYLNIK)1Vz7+RKqvoyBc{oeg?)J{a&tjvU6>Zp&7%yP$9ELd7moPoq8YrNSHh`2F5}%M(LrSpPBxxnul#4#S!zA7-3&MI7F3 z-m1VH6<$5|%FxD+u_b`DVomRUo~Y0;3)wTtjASppebMATI3?$amv-_@ztjuKa(!$S zGs+S!TWl$Ob4IfzyWiTqPdWkHe^a6T!|Pv0v08Mfce1#LM{t|6{9Gja8u^y#`C$>C(gSJ|u2oJfc;^tiN2=k6y+UpdFw_CbA z+ER>`<z)8gZglagt*m}-fnF^^!kG|{2;yxu8~ye3-s&d6lvAnFj-f$iSB zHfgtwR!@JXIWWzEX%0+tV44Hd9GK?7GzX?RFwKE!4oq`kngjpmIdBOa82{k6{_u&T zUvbd*_g?XXr!HRjPzAl@|2$`=88FR(X%0+tV44Hd9GK?7GzX?RFwKE!4oq`kngi1u z_}|ZgV*MX}fge5is&CEu<43-uW^-m>`ZLXeX%0+tV44Hd9GK?7GzX?RFwKE!4oq`k zngi1unC8I$ZVnXd|L_a!b>HO&eRsy^=c&n;{_k$~bnB)$FwKE!4oq`kngi1unC8GV z2c|hN&4FnSOmkqG1JfK32a5H7_ytaR%<`*$e$LCTQ}|`m+?nRUGzX?RFwKE!4*Xx> zz}Y*vm9zA7V5h;{@2IQY3EQ=Ezny+@p6{uPc<_8(`|8?F7xW8s9i}VdAFcaibP>nr zF}jY|74hJwXZQ%+^OuB!{z%=AXYt^589qw)&&}{-b$?L@>!rMmv2i@NYRSJwG~I8(((a+Q<%CC2L7IK)c1|T zw{__C)4EF6k98CM@h0J)3rGHM7QVZK$qzhB6(L^1t*dqI-od(Uy-nA{glQii@Ik`S zf8hDT_aRcBx9d7u7=H5sA1@sI2A?HN*^~z!6^{JhA-qC3_y=AuJWIcP7#mxJqd&pt zb<&gHyLJ6-hh9Ie_vm_MhhDd>YjwRwIQR#Cy>OKOKH;|s2mitE6pr?S-z!Y{`f0si z*GD>7x2+HA`jqfa`lS!RHwjZ7pO5MKXW?i+_+NyfrT&cdTZDt3pAi13Fyn(fz;|Zp zKP~)wVd}@{dR_l1On!W>*Y%f5{0tRNe?vq3{e)xu-6;GZ;ot}OZ-n)~_<$cF5bXgU zREeJ}9Q7f7k?_6sOBnd^!uQp$s@1wl*QuTKl=&51r+3opr}Zse&+1_KbE~d%I#{=@ z@8}vArvAtXcwGlW|07+`?O@%uZr62@F!gD7@ZSleFG>G1U2hYnfA!P)wXXMeF!aCG z^%3DH?{4AGbg*s<-TGx=@+UuZ?Jb@3w7;!N-6pL6MSr7Pe=HF4cyHl<6{al0b`t(& zhVLu{0?EtBL6YrcXcr7 zR|vnig9TgX3cp`i|BE!>4-1eNVXK8d-ob*c=LmmVn7R@V{(^2o{x=AJU6}qMkFCN# z@6ZcgrmOpYfqnk)#GQXS?~`*C^it~kLebtSTIvlxU-)j}7|Rz5&r+r#8nD zrf~57Ey82MAq(#iUMWm_blZBDzSeax^?A4Ori`9>^o7FY5B&%Ab(t`-qMz1>gx{bW z<{I++nDG0BX&>Y1df^*{(XHScg>M#)zWB26Pld@(x2><~>+Vi^F!S<=62d?5*Y$OO zVff4E8^ZeuQ$Hmu@Z1h2{#L~wm8AzCFN|#P`Ht{u!qLCrvpSgg?+Y&xMpuzPc$0AS z|LwvT3B!9nKNEgQ1z#o{`4j&tVf`=C{6hFO0`!k=TffrRn}p#XdH!1X1D$yK=eNQi z7iKK-`GfH1I+%FySF`v(3g043Ub=08zbhR4`jha_I+*kb>0KR6ni;~|tMU)fJ!N9I z>@7@vk>~sBYhPjb0sZ}i=VkHOHIEjK_UtKqg0PAx__??6(}c;J^5+OYOE~JcpYRG{ z{V(!AKzOY{jJE@YHwlxT{sEsS9JbF~;md{5)#ML;mvG46LgCK{Q-9JwTKHz+Xy0Rn zZxIgp#?Jah2aCM*B;o%SCU4pg-d>5R5Bxqs_};>_hxikPA0Qm^_f+ABbuf8==L$1^ zb=x{sUyl}sf8f*fbwURVw$2bfOPK!Q1KuF4|3!J==L?V@Jb$L}MV)xT);Yp26Q*oF z;J@o&-4^)D4yHYe75LhWeu?lKgc-kl!0!{*|DwL&j|#vK-L}T{b%QYXe3t9xbHY(S z@K=PRKC6Yl)}g0-@Yg%^x^1n|*Y`T{xGF!KCckoBCIMGpVtbXCmiz)_?5z;f3FgLvoPiBwy?9W6-FPE-#Zj| zoiO>q-}eZAUYNEbuh`vR6sCOAzh7TBcj%${pztli$Y{hzW&(3f~^~bw-<9mzk=_Z;eQgIBTW4%|Et0W2~!>zyZ$l4+|!j(NeOPKLV`rCw82uFKXe=Ln-Osq-$vi-ht0P~PssCkWGD z)M*dlX9~k#>c_ffv9O9L@_VT8gs}b>@vL(;352{pQuq>K`b)Ph)-|sdj`?MQ@Y{vS zpY|Loe629!5BkIP^%-I6OMQ+I{loo52-6no_e9}4gu|XVLHPH=w2%D3BN7J6 z2cIOor|{moCy%EJ&liSYlyREyNy4P(bC&R8;XQRvdhpgxJp4Ob_~jj}+t#SQ-YQIA zkpE)g_hj@dgl`b0z2vu2_#48ia?$=(!ao$IzU03~_*cTn1E00Re-fs@$sfF@BB>vr z4Z?>A@1uLtgHIHueS9_wFB7Ky@DF@mho1PY!mrQh!T%`C{E0k)za$*`=Y_(z2*ZEM zyFmD7!VlIxeSD$tED?kGV3a>xSWPI(2hS5$k^;X{__4y&kNmC>ex`89$Cbhp!tjUs zzef1Eo%DjO*9%`FO#Y+?UoNcw1%89@n>+Nxzft&FVe$fBCHz5Q`h)&?lklg6sSlsG z2;V9Ue~Aa*B}{$b&(*>+1Q;*md5!RWIv9G^#d~%z<-Je%p&5R^@PQfrfbgOY7J2J~ z!jH@1!B5WchlHP=(SKO@Y~hec@N!}JLw!CWJlTn-KGz99uM@A^)~ED!Nfyt#{gs_~ z=x-2yeHQ;&;kRY+pA-H-7XNwSPh{~o3V$Js|AO$%S^PfxxJDB!^_Y{ut_f_G2g~Q(bn((8A>3`j}zNxR%gwYjX{1j&i z!%xQJcZF97$Ncmo;dR1{Pxy7a@Fl|fU!?!B@T&zRLWR8iRQPSe`YGh;-*od%Ve+QF zzZSk$7+C|~Dg2=hh6X>!$ApnT@P7(_wu5!s`is84(!tbcdkN{cJ6N!FFX0~vla>$o zUxlN+;9m)o7gt;OPGR^99ufXyhhDd>d+TdEO%CvvJa!Sjw=ngi{(A`T-ia4%JwW&& z!tj$1_))^jvfv;1NMZC5_1{bQWZ}qfZ{cSO>+@2+;=I5)H=pvCt4==Vn+kdvc~SNQ zMSHGjA=ho|!TNfxKtvq^+@6O3J34N9}*5-557@Y z;#u_HqlCXH9DP4e_{YM`?c~2m_&+j?&uK?xMtb586W&WWbmQT|2MUlMeQ|{FqdQoz z@JT&MICL#Os?&sncgF~i3e$ewwvN-+Dq;E-c{^TsN|?R`{ulTa!ao-vJ)g^k@9NM~ z9+=MOp4%(*wVg2cguO;LGli)?7e2=wJDB*ZgzwwIf~_|R?@_@I6sA9+C;s8WAs=rR zo+})>8hoNKyn|m?3qMVm{sQCETr3>&k56+#7=H74kMLGu%Hsomv2e&U`0s?Hf5ER2 z4tWB-wo?~}q0?O@VhCp=e}zTpEtR2cq34}QFGl>aH=Q-o!omL=g)b9UlM0@KuM(y`(BC9{t+4(VWqw8Y za{~G)@XfmUC*c^c_>gZFhM&-ULtoz!rhepii|}n7Onbf~{L>B=Y<*Yw--YQv;=%tZ ztp5f6p74FNaEbPOU--eo)ED|63LhklJW<|l!iNgO4|sOF@Z&oe8TyIvNgXWM`ZwV- zg`+*-bA<67>9+L?eQgnDe3IXU)>)M}(zP z3;YM+f9k|jzyA=vHH-f*;a>=oKjr^f_>aQT-*naMnIZhFPI?tp;I+cR-`R@a+=+*N2jRO!gf|JpU&>>j zsKE)Q8VO!k-ro`2_z!IOKhv@Xv)MB1L@`3jd`OPx`}! zcTnQ!5Aa^Xvg;$p7Pn&kI1%6IP@L+KtB);eG2}G zFnvXToGAQr;b{L;gzpljK75`kJWC7x7%$*GJ6N}^Q}lI!aJ1(P;ln$a^z1twFHC>H zFYsuFpC!B@OMkZTg~FjPMuo2w4*r}Y{EjSsO!#BM$QwF$vG9$;F~6=5{^yJye4B9e z7yDkn7N-5w?_A+O2?u{y3%51->!*kZ?eK;k2 zuyE*`4Z=qWQ+LvUj}?yo+bn#FFmYVq(>hqN^<3dIg`<4%O5ukpjy?uoDvWP|^z7Tc zT^M-+pD%oECq43iq44#>^cSCtguhk6|K7pyfcWi|xqgcFzEn4}gkwH=x$w@y(f(Hm z?xJJc9P$EwPY2U~;ExDXKkyrcKbytBN%+gcp`YF&{3GGeui)Pahd#Jkct<(fs4w|} zA1o}DU3}gyyr_at5~e?(Cw@r>li;1gTZC0a5f8qigNc8a@cV^he1bpINl$;jTlm|; zA#d*y{)uqZ7yM^o>PPwD`#;G2E7-bLcpu^DU+}|(Nl*Uo6FyQH{_$ZS_{qW{|KMi` zhrR)?5{93Y2Y!)o*i#=AzNmxA|HHzUb+BOTBf@_t9P$NzeFqc&G2wRzlUBC{ey1?^ zgnddk?-dSx`Dx(~cd(*c*9(7AnELPm>+>?c!Y{DuUC%${dy{iMqo9}HAlhgvv|ker zT@JogIC#UJ_)mq&lDdF@AsoE@tnlwU^u&Kocsn^k={tD!dEuRf^;6(4=;r>y=r%rI z6rNMT2MQxwR@yc_*23$Hohu+ zvoQ4|o-+X76Q(U(-w^(RFy*1Ez9szc!Z8+Z72bYM(ly@|-a!~yC;j(?_Y#h=`2*pD zg`@u9BZXruf}bWFy8SlcGlfH!-7b8Nuzm`D{a82S!lAqF5MD1Fw!u$?|39wI1MbT4 zec(@9OKEFwN=8LSrBEb<5Di2U4Vxr|5?Lie*%^_Qkxh0XBay6Rmt7Jf`hUOYy|4fK z{Lb?^&$-U`zUF=1_w$_dzI5IxaC{bA15bw$h55)c;kdW_2+v7+*W+h+E*#hHFYptv z^HKjRyabMGXDz%Ej`fzmhhzQZzl-dvwJ2FX`=!1<>{=NAH@H#KgV}nxEgbWeJ118E zJKQtbmq~m;jyIqm0DJAI{{tS9*!+LO$HT^Vy*I+ACI+)j@cD3j7LzZ5V?Fg&%=qf0Tn4!S+jgc?BH(uK=%x<9eHdB}&s_QOLSl>CE- z!S>4h>Q98rs^q8&pOn+fqu^MdYVf(R?+yCbfTt(cza~5vj{Ne2u-BV8<(J?Nyw<-q z{4*TaxBpL1xmG3fFN?k&Torcyas#*y?0V_n5N-n--=h({I~@B%-Ve4O{pEgeT;EOL z0WhKvuPHBvz;S*)&b4%=T|7XF{EzHr5BM{3RUu4}jOh(Qmm*+mhcU@-ma#z%jo=;oTFPzdw8sY`xBR0DL?g^B)MG z0muIG|52L^M}GM_m>*{f{_=d-&x#($!b@OdJ3sjy*xd3^cv)gFI}ZL3j{A}Pd1B`; ze+RpNjp_d*_ZuA7=ZSE+ZA#Y493$Y$uwV+W7LEWUu}l_*povH~AAdu3z~tm`A~1Znka7{;(hC!Mnhf48}1Y?grZr z^>Q!R`sMTCgJAcQ{h0tC1-swXUjPq>ji>%Xcr@(wYd{O054> zcxsL>ho`}=hkE~?!y6NW*)(`=5kCq?|J6U6^OqOHG5@RKcVO=?#+Sc@y`G%kHSnKs zTz}WX6p2VV0^3jH-wf{s$Nl3LxL?wv&g6lK?U#H4 zTv;W@?eG{l_NzP&*4F%Y!so+?!f`h*CMA3G%hTYfe=d9rY(4tR_rc!pjCn8oRPtAU zKm2O)SN|aVJ{+HK9)?%u_z`$@V$2Kw59m6$vcT~u`oG}{yf&V^IoVt9<8bBnCH0#B z3Ah0q_v5GFws71Z<*u;twU>Lr-hVv&e@+jF?VpD{6gIbqJPdZfxPJ0T*w@Be2%iEY z3hVhIFV0H#>R*D#!&P|g@d`X8*{heYfUVE@y#~*Ooxl1;@a&xZ>+o%G)c+;BIhLfkWO8Hn;KQzOd^le+C~5$9jDZkAkbB^N`Ph-<*1_rkFrU%-#R@qYOw{2CnBi~Io`{gFR{{k-GYSMXZc`@P3^ zaFq_F*Oy!$j`^&CTfy=9OYR8A{powSSJE5rN4P(1K6@sQgnhs9_ywK}yPvE_o(fmv zwf+1Jo(bC@=l?r=SB@E)&iVhp7icl^znk~3bNl-YUG4u*y#U)SG~oCHehxN{hx|Nj zU5?2w!iWO@$%{p>dsF>i@JDd;awGg1Tn(MI{td5zV{dPQHzw9!uCjgUXO(~97OdUaHu7zW7`TvjK2-{l^`8GJ}m+ypQ{^j7g zaLlJX{AltwM@9HaxN0F9eT83!Z`-mVMO8B zk{5MgrdjZp8^Y$do*Hl)c*}w{eTO^4=JSwyz+NjJavwPS<-_2(mTSWUa{hJU<6-+{ zKKVr0{p5V=!>7QmxB3R~1@M-<_Gk!S1xLT+S#Z=R-vuKIhkSox(c`M0*-5~CA>E2_4nT!Y|827YCD$RyIRAI zVb|Y7-Vv@|f(7md$Nbgzf$fiLARh)J3dc6Q7zD??Q68Dt`N`+O-Wxr(g)fFioT*MW3D!m@m*MJd)L#_u$Kjr4I z{j(l<+r&ET4)0XNyTQ)gLw#2`?l*Feoc$i~esIka^TNMZITDWi>W_nCf68NEMB(Vl zi?iV9pL{`L4Z6XX!&{b^7kC!z{&YRn-w%8J$lc+G6NA~F@Z-r}z5EIs^XUOEhRyHM z6JD0=gTH`dKI(rc(*Fg=^`O3d$I|OX-U^QS%T03nz2Nq6>_>Tf7*UwdKD^i&j{8+F zxEmbx_J;R^<9d|`!Lgs^V_-z#kcTIBKggqV`u*TDVe7G9@;R{gZ^!z;=O=sh2f&kI z`)|Ah;i+(ZmgxuIob=kubKvOz!SLNlk2*U9z7Muv#*?3bW4`_2mtgmU@#J?CgV|y5 zO4$3A{_+oStj`hfA8-wH`pXqMmBe#?1K`?l?8kv{Q@AEN;|+p$fVbkc#}K#&Y<%Y= z9{|VwawvRM^4DHIsff>oV}9x}HoDezH=tw$aT$Nlv*_~aa)4xa&=-{TB;66}8PkY^O>=fJT( z>K}kzAM25yf@|^G{Aa>%!mdgEOL@0RrPB)BUazq_6c_lM(td@(!} zu8pns@|kd~?-Y1)vR8j8JOlRguRIl=ml(`0gI`Ma!SBMZkNs8udCvX{_>ZJFo?Ky< z()GU*-ZHWNSHblYgV}Vrc}_34gJV5rz&pcn|GNg>1CHzSI(T0=`XL_rRKR3cxC41D_P4LaIz8>=JaQtj1KLf}8MP3ZsPY-z&Y(5WpJ?wgzUoO|B z#NHe?!;N4>L4P|hTEem4=fK;;5l`L=j{Be7ACBKO%A?`9zV3q0hvR-LUjf%k`R<12 zz+OMrHy3^kc0ajZ_rQx1tDgsdoa6i8pK^RZyg4!E*#mH`T}$hgTfvb}-UW{R`ykvW z#}C1Sb37kDCC3lL7bP~|Bk)W(<}2R`NBPoovXcn58jyL_u;C0l+JxQ+$6^z!aL@81-w^|{kPSJ<@jTGc#c1T$0jCy_9=WB z9D7Z^F=zi7{6J#sT?sGD@hW&}&i+gIs~mp?|DNNo;fh^L=l2cVAjjXr?Q{Gc+%2*7 zu7>-;QLlV#&VCJidXB$`CnvW4AK>e9{1bdn&i)tp=^XzGFUj#*cx8^)!N2DCH@Hl< zlKENhdbl`9+$F~w;66G210Iyv`u~JS=XfJLF=zh|e07dD!FS~NUwA=| z|AQALw%*O~M{v|Df1k7WL)JezE(2HZUb>$CTm5D^E(do^Z2jfoeR5n8J|bto1w10h zmEmzYt^!|?*m|qNx4==a{7}x`?+SP^$JOCwIo=ZfCdW14KXP0X-eS+v`E3O^OzeDW z!5wn?I`E!3t_vTM*m~>1$HP&td}dBxAD&XgHx%)_B7U}r-!9@+aO5-o+Qin=04~#m zJ;`hDXL1`jK1(!$JHftpsF(MGz4v=Gg%5}0ekhNEy}x<1fG5E5SyR3QMidTt8XTVu zQ}!EZidp&R`NPH=CcD_Zm-h$%eCQnZla?U1DD*>6^f=r`JUtj{q&G$!uH4gEI$IbA$btYZM1O6$HDPgOCAfmpX^^Bcm~{n*X1}5gy+H5>(3hp!;9cHyf)?$ z@Q<+9ul4xdB{h1LuK&?+ha%n|c7GdR{qV%jZzy~b+&1Zthwp*SXZ+#tTX1V$m*+eY zUYl6`NVrb#5f3wjK}pn0D&xRWnwEXN2FM!+R_+z+3jw|f#+wK)N%r>ZLil~S1+RITUBuJxaC2UJTn5+aTT+kqayvLa z?_Uo0fW7}2U+$L}%&vrwhNB*N6ddm#SHV-@=!bk0?ETGn)8PkU?~ktc40s_N_rvSp zci`xU{4MN!tXHmhK@_e*;HZ-9rwv0rDwlVSItdimC54`#FB zhhgtu9`fr+uf6<9;tH_eee@F?_1^}UJFw(_tG(P3wm#SJcDQTOgV{asAlUt5zvOe0 zy*v+|4jbQi_rr5x>ysaV7bbf!dk|g$d;RM#Z-QH>aMZ5`)|^K3(+8AFo{PzYZ<@lVDW^+lko5 zy-D90u(diDc|II_V-dU<_PyU@G5j6uUesRR3|pK02HfzF(ral6+&RZ@!3V-Im$%^& ziS?H!!CUg$-n8kvp){ZNRSzq@H?D%4z|jx6 zGaTzD_k+#nwI+{%Yo~Z$!RNvD*Y*7xo(@O9zJ=$)TcPuipM?F{!FuE+aBY;_9fRBL9uU-^-K;5xka_ywL1 zyFWeTx8bN){sNAAaYyGi-k2ZG;;gS-QS|!yVyRPx$~iu1|Sb z5s!z>Z#?xg;d+Vxf$xLs!}fO*{1WW`k^h62!BL+-^si2gIx7Qjf}?_I~62umb#dvUmP|Pho?B zr9XRAf%k;1&qF>Ej{B8-7Tmf-omGWrVm#29PbC(4}$aYPJ@SBKVr%B zrM@%V9KHRN4@;~|HTX<8)<>RE#Pi{X$zS~&aI9Z-cop2-U>sY*o8joMTyIEeez{9x z?Q6gT;INm+z|l|n5;*!N-wZd_nL~c6h(Cb6-kq=d)v(utM@@JW9QQA|=Fz3^_i|G> z{I`NT!m*!f!AHQYO2QSsH}hOL>Qg@rwqG9dy+!(kaE%gmLH{<~D93Bys8|1gi@4S? zrSBK&Tfwm&wc*|2SkF4}k#O`=J`HZ1^2t}ikx!ljx5(*VhGRdg{}OJJ)Bgv@eAPEN zw)A&davL~rzc*}r?^o)F!EwK;2cMhR6!qb&;8-tt4jlVYem1f84dCT)%vb&ej_XUV zIP`zHDIE2y-wlq>zVgv<)Gwb0H_J*6c{UvDCoh2W`QL`){Zsuac-ySx*cz^MT*?1O z;fTBg9M^-~8;@3s|^2N zeLFb%t^Hm_JP?llsviZ%&qwk&IP$lEuZOFo`sCYl_VPn;wWMzeKLfiS_Dg;<>E%}N zhj8q_*6^2bd33Iy{B4fg!rv#>e_QzH#9-DAUYFC$8(`}(UVFIAi6!~;?*LbWEAm?2 z9#+k|2QJ5J$K?9SUj0sR6WHIIc*w2cn2)?89Q~4ahoe7oZ`l5L$VU|Ek4tQQ z>c_yE&6l*O&I4;YZ-OAMXq=f}`KNz;7njepmRN9Pb7%ON=_( z9p<>kr}(|Vq@(V>Wa^cZ+~U`MSY-PN9BZNPcX0HoE4&V_XfO`>Pq-vS31=fpdTqVx zE5YI41Fi*o?YUNR3pjeS7u*T9cOG(&Wba(%esILw8y=XmmrpF>GmGpe!m+m6Uk=CG z$~VGsZY{vKl~3I>vT|ap%IIc&z0qlC&Q@LqkFdGiH&e_Y`73n*|as8_A z0=r+FkGw~+H~xum&z%3s@V;=&U+$OFkAx40W4`inMfwqNs2 z;8k$!clj&W`5Iqdo#Qj$pAsAYEO;HPt@-8kaO}Uc;j*Jk`zKd|5e0j>CLH}b2d-``Om|!p8Zz;PfkA(u5?Q2 z`=wkTu8ytiCAWrs?Rf#*29Eu9A-oOj{`I^FZl75Di{b4PgV_{#r{r%8xl_{1m%_W` z_%e96#KyYFqHv@hx$JfA1a{kxC?-lWiB3=n&R#+qLzk_4_ zuY=dYuCK=p@PBaZU%Aey|I6*+y#21Q{qxX%UpV?L9}36)P9B)k&w@{YV}Hu0!EwFI zlZtp|k^Sv3W`#rhd2p2+KL$rV>K7)qzw#S!MhifE%`I{nM569-+-A{5I zIM!QkoY;JF>zw{ZxC0#d<=x=8|H?h!ct5xa-aF|nQQjYp^^%W;w@mfRW8hdX`Me_g ztKrD6{^lb4d2l}e1BsoF_VeMmo^FPpfTKV1QaILA{tAx!le`+Pnd+7QEaFP1m#(M! zt>9Q6xp@)q279@9PJ^R=x4;wO_;!Lk43 z+lqKz5kCfFRyeeO4vzgJzY0e^^0FfT&k|dY`tNf3+u^lve4dwohhu-q|KxZMT=tC8 z^}GYFT*NgKn~&pKpW^odfAt&u{vNg7-kYJB`qt0c-U&C&@m+A6TU^57!<7&!K}`f>19CGG|P%i-v)`dLN#d2p9uw*+zO80v&!Az_}NuH9FF3BeJ`-)`{CUagV{rHFWC92mk&v- z|0D1aIPRs7!Y9MV_q|&_6OR5YfXC`58FY zLtX?&Kjal~^i%!`MidTt103rm{{=fY&u8F`uyc{0h5yO%bMU{3wRs-ioYTJmmpQv6 zpZXW!DsX((c^R$=$9|LR!ZCljF&y_=xj7u`_X^w|Mih=$dC@uNFYl4FmwUm^#d=IWw_hCBjxKJx4En4JF`@ELHdhdddM&mQu$BAyL1T!^Rsj>HUQ zZ^HNI?ByrmcrTL|!7(3sNn-1hm%^^M#}fE`IQEzPB^>>i*T9HEJ@Ps@`tcV0FC6oc zw>YO{zq@8~P1s(0EQM>q+FOs@1g@i!<2|?|9QQ}LCmi=bxqtFErhGIU^}G+C3|qhP z<Ye+7IO9P2AT4#)K_KMzNJ@*8mc zu2KFb*_%)P367tQKZ47RExmr_25{6XZ&Rf22G_GV4)y(E`(eN2fw2AX_yisX$9|Dd zf@8k&DRAtsPvMDh-0$Qo;P~&5@;o^HyOF#Ij{CLz6&#-hxIr%7>2UO0{grU@oc@6#{bD%QPy2U^cm-TH=l>I&@5e^i^>#h= zuQ0B3{Xc`Zf}@{u3plPfd0RO8A@_h|J>=eSqD8@LCIC>(O1B0dz3`qU4GV?OdQIQGAM1|0RuXT!07FFy{){d*0(7>@eocj2f{UJl3m$@lOVIlcTHT-#(E zKfoK|*l%)$@g>)f`Q^rN?5`i;mT=s!<<4-#llO&Vf60dx@lZJ4FV&v{$Nc0Ai|nt0 z-l6zXW@IyPxFu5^Mhp{3RUgD}M_|KKa+g_D9|b zBMLsh@}lhdrSn@4*My@Va+4x%5660`-vy5SC+`Nw{YCDc*m{45_l9FX$bI4HuY437 z{gp?;v0m~7IO>xxhofKeY&iNa-wH>+<#{>Y058b#AMgt~{u6#P$A7`g6FZ-c@E1k= zBW(ZexB3k^{u|z$PNzHe~?dy8(EA8d?g&~A>UTSkHRV6OkLvl0Nmi#SLAXN|5x7t-ntOHBz{LYU;BY@+za$S8qVh*4g1;DwNrl~>|T}2 zz*FI->Nxyc&~xD?C0O8B;Mkk$m%?!^$jfv3a`0DhTnq9KMf_XNU;Ur3*ShtThyQ`& z-dh1KdqHXbif|3sYg2o<7R(kY9F^ckaMUL^&*`^-+riOqc~=-wxEINL!ErCH0w0v~ zmj}QxKlzv<{RlYrruwmP%ugN<$9qLp_@cy4pc;HB9M`&hB^-NMzM)8eGaUC8^$)@E zvxxjMY=7*RyabN^R)?3tv0t`?zl0;6ydIAIC6~XjB)<1X9#l&2PQ(4Y2EDJ@w#w;MfoK z;m6_VkNg}Q`@aGFMiGAq$9skPkKuT)mRG^iU-=g}>XX+O*>8mN@iry4UhOx-?kA6} z;c^$1?BC$(aP&icJvjEO+_Xr)4IK5U?*hmA%YESJw>%Jz`sHI_MB$K6g7f)KgJVCa zA6w*qJ{Cc{y+Y$$-fLE>hFYOy&A&zCDx%4{74Z$1;_fRUs%Mi!VDJ< z_3yyZA9*DlpB?4z6YJ0z-T*uQGKv3%W4)T7FEgpMAMzG(%vY`p$9|Ms!HB{kZx6?N zmE5z)z8{>AHyDolnf4=!^k>1bU(`>4)#Z9 z7moVnuZr~F!%?sL4RFjyE<3sO{wmih;+8POg+qM@*!^lfaz{AgHG}trWB$9|BHD$^`FslhPk)Q-e}v=x$@>0%xXHzxK`GsBe3C zJGfHvmpj3+o^mfZ^2z(dvH#_RlHT}o{~YfCADQDF;US4lxf6U`5uXT0Kh>WK$Nc28 zVRL!P=fIT=#?cX;kh7O3!?AwywXprxU%noW`(Y>eJ~-wtKbP~D-zwtIitK-Zn_3Kq z_SL4AUe9t1IQE;|3vOLvUa&u@h_8gV%jutl7xdd)UV6V%zbCv+PCp!u z{jdI{#O9Mn!Li?Vflr0q59;N!bKC_U4|5cL{*T`aT;Jq@XIFNAYY5}l$6neM+l#P` zy)9n?$Gu6O0V4{Bd=s44&n?nFT%>=tNdFpKIT!C8INqy`zY5OB|Dni!J)Ez9BOLb< z{VQHk+AFyVoS$C}xDxs8o%(uk)l|=JaEl`D07pLconS=akh{ULc5)ARi=2KxIO zI2>y!A629u4#(Q6AC=?X;nQ=x2Rt^%UEv9dEukAc8Fs!N^5t;67t6EZxc21-;kZ}G z&%^QASY8VIxza;kR>U8`ac@=sMUnoi#P(nPH?Zp?cZa`+z|9QTBugd_f5@WQ0mUw);CUoYaf z;n*MAe*s7TxWes6d_9P#BvaO^jE2^{-T{uqva z%0I#JSy(PJt+al*IvnrSax*xtXSp-nAk`}$0O#W$1IK%*`mu2IOP&fx|K%&-xF5BN^ zIOcx{+&`z6kIeC*@DSMk8M8k;G^ald9-h-54xbE1|BisqhU5MwPlb);DPIOheFNZW zu=S}w623mCKMKAn#{=Qp;izvAd>0(|$HDMDaMU9|1|tfG{CtuA4LJIv{yo_1#Y6t0 z$p42T``_T0kM@7UQQr{wAK1Bh91U+u_Q7SYDc#@dYr|2G+z5{AO>SPqZQ$7N>f06Z z_C@xciu7IJe7-&5*w4n>503XUc`zKmTar(QqhIoca9scLG&mp6F|P-E;&tM=6=(EJ zTjy&G?*lbCyy@zdQSVl zBf;$BUr7C9P0b~nLun4BYoc^bts~x(>?tiM^w1hU2drU70=S;`PW>QG$9Lk?_ij$> z*@B?PtcsNa**e8+OyPmb$-ir)(y|LWs=j{EkJ%?#ae5l_zHE>7#- zhCt4>E`i*`BWZxScjPqoKu&9(!fEc?IIZPk{H(bJjkAaDU&lLfI=&Alp|S_i8>bnk zayw4Pcj45pFQ>g9z-jyzoaS%IX`KF?<{!yv{0|7Cyb`Hjdrsr-%xS!?i8~oX`I%a$~K(F z-y?D7Bs-?@9!UG}1gCXQ#mRX+hjdNY2Kqb76U4lIk^1*XdR_Ej5#)KC#yKR}HB9yP zq8|J8Bk}eBgj2t!7(377IC05N<#avI;ItnXaO!sNhso zzlgMNWhv78##~PCBRetfe7hjM_w0)Fp52c6>mrXqdS5vfY2DXyn#b?Bb-w<*pgfb) z`fuh`zmC&BZAm=qTZ^==iPUW$Msr%<3Qp%!HQ6;IkN&$Nt@nAPetmJ$?j}zC?&oy; zUrz1D<8S_durr_kzp(qGF-F$0lv90s?2JD@<+}iTRN3>K);E^Zd5!0E-c7JK z&R!_hw_;HJ6`YQjL$BS6r1x(V+qbtl?e{yJ*3%NZddOXn)_n#^U5B%fuERv6{hv%6 z`+qsob!kj8<4xz(zA66NbwC>bETr~#Bh7P8iZ>Qn=nv93M^mKv2N2IbOy;y-i#hGX zN>2NGA#v>2Qs%+S>|9RexFpX@@_ZyEW{+_?|3?A)@-x!D910kxImsv?TfnLPFPx5F z%BkIKPV2dVB=QVSszZ$|2WIj8y7a%#5_rSrUp)B5k_v=1M1+OHY-+22j6 z4>Jkke%cae$7gcte?6!6n>h8~7C-y)4O08>k@oRylAEUk#VIQh*FN@zwfAr8I6ga# z4}h)r68xRt^GNGHfpO<^4)xm~e_moJyPZ?Jx3F{G{ZXnPfU$XoAW>ygIUS$HseL^L z&2u_>4ch{+!deWf`~5 z)=7UWMcRjjoc7^GPWyK)di#7k(s|4$x%+x=igEvL3ETfZ6yg597-_#hCz*Ml`$D;+lQW zsoi3f`n`^He#?>Oox^FqDzN#l$H_kY&1rw;F>ZesAocU_j~VA+l-iw0aQS$~wfEms zIzFG%@y9v!Tg~bCImFTK8}jfndy`ZBuYh{L)7<_XjkIsQ8TY zacVa^#eX{aKZ`W(K#tR$A++VEJV6bUqqVcyChvS~j8nUBIGtYw>`-NG@aJXr9H;ZI3pnqMN&ft*se zFTao2@e|NH{vXouo09(klB(Y-=?_SHe~+r&r<|^91L8G6wn5s*q10)g_n{BIKaN4V z4`w3kBOgaP-`|n;^)T`|@BQ(2o{z!CzZ0q5Gt_B)+n~fHyMTE(uZNM=cMo+LXFNf) z{|1R`)_`&CcR*57_92oKh41_~pUIRTa2oF;PW#pdJL}jDDKFKcXRyh(z?|}rd&O5Q! zZWP5Szh&GwPw`}3J?MjV`@Qmx&poW^=T)v_1H=6VmMx&61D+Wo*OPr}c5 z@1`1mph4REUFeiw_-~fl|H!HQiPQ02DBQdcGbpbHto<_B-d%}wZg(MF+ZGrZw;Oim zJulVwGhn>~(7P7bCH)!rX@50reVwUGySCWNbyED}lHH|9o%wD?@3pW!&ek^+XXE*|U9InPqp} z{Tm_mubbw#HU7pqnxyvgVCY0QzufHod?%eRh$vFFB>^$B< zseVk-cVOIkw<4bN*ca*iTB6s!3wq;D!O4ESPB3LR?9?wy_CFzwQ!&-?7Secw@i*QN z=#BF`((&D?%YL3rT=mysZ=Dy@j6y!7@tQD*s_?glwdQvuQ?DgM1jqgHS?YbcKpF=YB_run8 z0`|`1P}unoO7^cOxhvB6!^!7+${hsrx@*Fq`@b2|_xRh0(-heb`^LzPBx{76fqfI? zEy%5rwMgC&SqJHRel_BH{rWcvjMIs_9p4+N|L?@nuOUGJ}v_PrYQSl^Dsv(HbZye)}`D!U#(`*Kyv^AZwO_HyEP(Q8+QLGAoI zwS>z0Q=IeK8NKzi#ol^0Bb~>Y*tri5Om!WBbiD_mx4xSQ>i%d&P}hAn(t7v8PJJ(= z`{it;`gfB5R`?lrWSYn?y)HKzmdGoa}83zf%vpqup`_P2? zT#w_B&hIj$_WNMxd~PI;_0M8lzk1Z8oqs3R^`48J^Q}xg>sgGw^__#g{qIG+&ht?0 ztnZd&cM*2(hf9&J-yzIH`=02v-yeJHy&d*G@C(xG`ah)k+v8{blkl^yTIBQoQJcDq zw>@^|dz}2{DML`>``>ugAB?~He^VW&raC{TY4&3Z@tnuS#L@2wr1N_kX}nd`XPr;t z@Av`KVO;+$uH)TO{BO-f|BW!J>}Z~hGY4thZHepp?SNE2h$p!cPx4@%ltYp{Cdp%y9Gc`Xr15H|dHhYC z#%V- ze`}uPiP$Tr5J&rGu~R=5K$Sg%)c;we^|#|md1spMFzn5HS&DxlPWs)8k$w*$G0i6N zq}_$s>3=QY_+*~6zk+e?-{8r5{5$B@(>29ipX%`6j_ZGU@_P_z-~GGY`aKC7r%TH7 z4SvpNN1TjzMY4YxX+8C^v!BnTJiB3RJ=YP$zAwN?yHjBE?g)6_yA)8~L>%q!PjLqV z`qd?l>-PzE-beN&zV@Rj!u6hoRDTa~&3_nvgve&{r2j`q_ru3X?G8(Ib|tR!ot^Bj zLvP$isLQy1cY^c3E%~=3kM`4$#vPsNszS4j>t=DhCwlYsM_SKANaOYFFF`yNvLBnI_A0weh$;yRx*h@;=t80+^wM%MEjgWeDJ!N2f+hxEGK zpZR!SsExgKE`s$toc@__A^y&<2~6nh_Eh)BNQSagFvi7WmQV5j3sm`idYv=obZXDg z?32lDP2=#f#s`tsbS4R`-M)n^<hK>>IDTCkzYVG1$;2^F8zyVqI>bYjZH;ui0?D1^t(A_g2_`Y(VnJJ|MVUjVJBiNOnt**1sEr>MucB|FOw$Kk{q;CU%bROdQ{X z2I1s;&vi&YBfN|(=#F!6f^HC*vNN#=k{sKN`J#Jdt?Xea@5e3!cnZn|Su~eDucMib3^X@}%D+ z>Nd_=#tD^u06U*`=$+rS`0>a#0P6SP$@xr%jn@o6xdwT>cB^CTI@LnDeuI(be}> z`jM%g6Nyu(7o~MR&baeCp2@hM8liMQoq_Zo_YTrLQ!zH)ETr?k8z6M{JpR^M2|M+N zp|r2BP>-@Q z1mniNfx7g+ka6q$ojCGA`rfeW}~|TuWS1XYZgl zZ<$p8Gvp;?wk*{%Ecs1EI*&4`?m@8i|C0O;z)5{g;ycgth^u@GX}og8<&nLV;$O-* zA+pu5{rBH@sb7mRA+s^mr~VEkkIa8hV4XwoGtUyF^Ju}ib@YbKw*cw-Jdx^ekm`Ps z;Ha{_c(N~J7`GqClH5MFA+LRX4pzSyX}^C$nr|ZZ#&3)?zJGh!@typqf7t1j+2zX5!n|UC3wu`y!p+aO{*PCOHDhBRiQV^WKNFuG%U8 z5hSy&=ka&^a^gCl2a!Aqe-q01+oZgmvEz|dh0VV^;CwG6p6h>Qit`ieVBE`7{3~xe~2{SdZc-Jlh-osRFG;`K-J$d=%*-Mi?GdlIbu ztI7Tp*t{>Jv|sI$-))R*zZq%W`w&F^Pxx8K&{WTx7}>8=(7Rt}A&vJ0U#jA7U+1IW7P%Wm7Vb-od;NS3 z8~-%wBvj#Vl@;nwasNOX_j>fs?*i)6ZVBx8ZAk0-gD2PVH>CUZW`eq3>*D0^I!7b@ zymkuG{W}rq{qlXJ_ti?o^}bmhNom>X#C2Ye5l4QPr1ozJ_RjAKr1@4Lo!^1@xqr{Z zPyI=0-Us35JVzky$DS#Ue~(?evq@r|Q;B0e6Jh87H1Ukv4OXtB4&$GUG|t;d>sgE* z*Q^q3Kk6ZI&FUw+8of{`uk+1F=dm?* z*4Y`hpC=;i+r>!x{t8n2`-r3cK`GvWjN7lPk&Zu!H1FN$wLcFw-)Bkh_bys*YxMU2 ztkk!D^v(PiF{t03=s9Nl6u%evaEl%*D;;sbt zdgr$vd7Mvk#+ApwsIu`$?G7fMc89@)$Ub1u`BVb5+X6pKvTBTL{{_a5AA*!0#17YN z?_@WCar5*;X&;V4Z`>I;IerJ=9=Hc5*Y1=8^+iDzBM zQit<9FZJ^-B#-QS{M64yuipy%cw|>3{m)2DvNtd?{)Z{wYl;6x?>tXMs_&ELTM;(i z8A#*zLMhKlb$*E*s_eNGuMy3(pLfIFqh_LXo-g8T-+JP&{t=2Z-XZ9n&*#M9k+nzf z_`{5Aw>w}x-BBuEA})`@-+R*j96-BfDD7_(?48F9#z;>nKCO`EX%4vl74TD5L~3_F{nPJfq}R*9}8DpF^>8ep{h8{;R~duKDQAGn{eb4MtkmxYVbQVe`F!z47}nDeD-4 zbbj}vm(Rh-^`D>oZ^K^wsl?%B)&jk8N5jg!VDqiQ-ux4g*3}xNb(KTUBkP*#*cxg6 zrwMAF9@ray-=wdCF;mIj|w|Z;4}lD*@v+MQQ%eVD(?|q~DiF z$5*BCFA{&7^xq|3N?h~TOY{7darfUIuz9~l>3lXOzhfCR@7L79P{hl!MElzfiBIPZ}qkbiJ=6M*lp4Q3l6Qt|;9Mb(; zlRE5c_ask6dcD0vJnfE7c26b!SmHVU3(2(mfN_Sh-C^T>gEU@K{CH%a@}&L}B&OM= zNayt%V4V#qPW_v(^>^fn)L9n>wO@=qkL*PTmHr!T^X!71b-aO{*Zm0uYk{1a;@*<{ zwuX)WUy^?3g7y6Yd;Oe_o$r_3{mxB&7@Nk=O>$h4=ON8A8EJoSOYts%o!>e5JN`1#`K)E! zdWTVu_w~~lmu;4HSH|D@jX~O{8?g6%ts1Od3+83LS21osze{;8O?fYa)nA_E6-i#1 z~2E3AMQ?kbK<)a-;(65N#2&^ z?Mco_@{S}QN^*XZbCJe>B=J3oA5MI4lJkpUrh3)BwtSQl_cLya%qz9 zCAlog_mg}RX`bbYmn8lm@mop0o#Z=7ev;&;Nq&~($|OHea#fNaCbzAqAgl;p=r zewpM~NI%ciV?X)xPZo^Ag!lc%6B5t>);;7wOd7A{mL?K z-epMd1G5S4{o239qx_F??=!FBXa4F*Rzo_!gVQ{QAhm0g{BJyk{~ zmvQ;aWVai7=g}N?zAcdUV;$1_)&`_?)J^#(r#`e{+klurLM{2hd(zx3t?u6u#b>+!CjZ?giNxyT_?}5~>dy+kn z=GhBrp1qOo#VhE!<2{pIuQXnsao3erF@iR|CCkaX8W*pMW&a2&C8MA*_M^?O^LX3O^p%G@jhsW9h4V_)zrr|G8v$ zJbL5af!;bUfKg>HA>9Mb7}!7{+;IkHG3bMN&d`1kT1;0$WdcSiia{ z&KW4p=ig(o{%f%_&zVT;d( z_Gc}F%B_*kXBm3!I-<8<`zO2K80Ten98cEY0%_izk;ZR8Q0;pseN&`;`V&9n_J@@x zBkk+QjBks)gu0yP5d4j|k#Xhj*m-^WJy7<2%cL)p;{1i3@wbAV?;%M2s;533hBRNR zWM3a?Kjtzy?Yh8(%=#fQ&FUbXR|ll^9D_9PO&D44Nol+aQok*b=Ix%wM-tclUK4iz zZNSL5Co!(wO2D|sBVFIB%u6{0d)M~@#$C@&uyPlq^*liw<$c7_|1h{Eay<6d^;eqD z;jrs47eDR%yHx61A?;H$@>xd}{9UJK8TUGT3w!In95(MciB}L;9t+dz%~U!q)R^igQ(x(~;JD z5lPK^Ly|R+sIuFU=DVD@`hQA1=erQ4>-=SswHTM{5={Ns*xQfO8Mj|&Ag%Kmr2XiG zo|joqB#+GRE3=MvQLf_Y>g0m`x||BuP8W{S6es$(#9 zS;so`=4l8U&+o9-e<=3KW0BUi6HEkL>oul>p=U{kqnDbK>DR$sMud zk?qQp@%>JB<7|nYpNZ--?!K;$^g1~QKiBPX^q6KJGVVV67%2}#>i-6M(mqzk-#GWC@rRIJHw%#V_r5g0r(sfN&!_R*0sTjz_xiXCseLP+w5tj$|HR(; z)`qpehC%ISBArh&#?AK}(m1anokul{oX2SFl#eF)SdwoOSGy-*<>N?PvtCFZg})o? zylzh8KcaNp@8#5fPuMCr2U`6xN%nTr2k4Jsj`>QD=Wj=-Gby%`1{e$?`8Dz z-aI+KiAaVD-;r*Y();$t(5HAOAiW-Ik>7dlz>|J| zGj84Ou;*nq1F3!sp3J{2#W^3P<6U{Oj`LvU_#`JJc|npFCV5eklastS$tg)*g7m)r zB+~i+o8(%g^SK9U9q%LU!*c4;ZXMG4-%ItbKw^@uPx>aQ&PP+6Z;;OOM)c{25_;v!NxqWgt4R0vQl!_xLhSA1!$|Y{w+F0eAZ(pSrg&?xmw!PzkNp_uWp-@x z`wr=R1|iiCNqh^^c(oI6kF>5vNb?3JhJMr^_4@a@5i8VPC%M>HqtmJ zCOIO>lalO?llFdJuW=_a?tQ%_>^we()nAq5G^F*{L2ul7u=2hn?@#i9B)3dS(0SLyfiD*ZlQrQbuV^!rWXryAz*M}R|{k3@?*4Za1KPjApa$S9+3gy z^FNtj*9ap&Y5s{~f#FBEM~8TG0V4S43)oIB5@mEhQUr!S!eb`=+hPtKJ1T_Axl>P+ zp%9FmYO_}-AlTC*+%Gr?)uwApQEgf$jPcR-3kqMP#`v=(AlL(ZpY!f|cS&QFgB9P%z?QA>Q6zbRb&4nBbsrj{p=*Pb0$pH&DoKh{ z8M=q3XGExnXEX|{Xo?mayFRlaMa?*3!$`9Fz&ms{=p4K#V{%}$;SpNG66T!NVI;%- z0=>h+Jpw~!V=@My$P9yA7_Hd{ghxcUuXhk4!WqND)l!s8ie8AGeL~OZzT+{h$3IMLdg>Amvgit^(0AOKSDWZ%?6{!v8znTyo7VaI0vS{KoR1+w|m?i&d(b%?&{fU?@ zo&VWhR(V*O@MbVko1;p@$b@+4>gY5eX(7 zzbLwgSJ-BHa6~xWbBhnEw;J6<8E5+pelEh8<=PR9xd+`RE^hz#l%j)KFjGhWqgbq) zFtYKSLKTYPC79yKTz~@pA$=6+A<9@0GTI>s%u7H36|u@F$b!wHj71)!(qdp1hMD(! za^@n8kawV8c(`{cjiLDvlkJ6;vxi@(XQ;=PaH?Mn&=d%2@#e@GBkU6rM&7a|%sZUu z0eTFA{%n~Y6dZ&C-S$O+1VXn^y#u^G(OmlcP<7V$?~e0|4)O>DYa-5qsCug?mj)sP zaACcX#RIeRI7Izm?;hr=w zd2j(D_{XqEA)J*J1_K1n5H%!=Z9`3-3^F2QNahKhLB<6D5kv9-nkU@u=#Gc?Wuj`hX=(G&S5K95G%HSH4q}v3W%F6{A19riX`m1cd=33zjl; zUvIDu^aX3A5U|!o>3!rbQTTE-Y@{#-qs^Q;R{!5>`G2s+MhR~Q+mu@<#uzYGEg2Qy z0#xu1(Ng0*sIjWZZUI=ofVm+Isc&fbW^WI4T{}PyWFv`O*cf5#c43Uh%xcb(AG?E5 zA;APxZe%sNLm2!+YGRv+>XUghYvS)0S`6uf~RQD~xW z+BBkHkO3;^lj%f{C^RuVeMZh@sGRcqrV%}&(8Qb5iGD%LQ8_*L&&Y`;3LKb5^b1;n z%2__0=n;h`QVybW3V^X`f^;}4_cs6#KzbWo7(QgbixyL72FE5asc2E$%$!L@H@EoE zOe(rbdk@c~qN^R4#i4?Vfhye*D`r<>tziDYMXswtU7qmYTLR7adMgAd)Fil@-^r{5Y(zg;%{cKP(%6;xXs zjesMvI8D1Vn0B{p+THSLcPp6nVEi>;{9VTQyPWZNg)P|;RFiCO4jM`TrP1(aR5FoF zH=&W}=0GNC0X9sKIl&2UMz_IP&`oi~X*YCp0-k7QMy69~I0}so z0rxmlQ@kxY0Z85yPh=ygpbyM(rZh6enNGt~0T6Tu!Uj(=qnqGJBs>M-Km_H1-nS$m z9c@ddS`chZKnev9^0U6}R4_na%BqEN-A|N1#cT z=0qITl5RpK(-5`5Q%rC)8Xi=VQ6!OIL!eO^CE!`#5z(@~nh~ft6C&P>b&DsV?`RZ) zg$14hsT8~^8K^aZWWj>75?BC49`;0LA#@8{Dv@kz%>V-JB{S5Yd50s?2sC?8PllF* z%3Dy)aSmh(QZ&*aGa?QMlwf0nH$xPF=xjkD*xCZM0I~7|?2QlkSm2M5qXy}b!RTY}fqslgGUp5AoRHLmty z-l1Wx7Jk8@KEYvX7T%$*X5L}`;lUxUHhy7YU|VM!;1Lw$9lAKs1MI;=|05M26;AZq z9Oi1nJRx;uPr;sHA)&!r%dpa2c^?b27tXt4#3d}^{d(Ok>8JK(SWM0k4-1KW5J=W^ z6MF*DjBW;clAYp60QSB}ETSp1C9~4> z(R7l%4Lg^KGq4xzd`P;fB_5bD@a10=60ipBI!q%nD`#pAj1a04RDuNwm<~`u6J)rd zNkjsT1_l%`P6QmRvDhtFvLFGo%CMlYMWz%}FwfB_ zICdsevW*Qgh7FdR5NPZ~5>Pird+Ah1oGm-m22Z8pESU2eWH_T=2#A8xk*4C!*!h@g zHaMy^IM53NXI^wapo@WFK7L+c&*|+M>Is%!0p3AA;l9kj$TET!Oa*7SK|X9IHdG5b z!3>UDsx#A0+Ec+dpfhwD!3J*&%$=zvjs)sR21W=61{X97vnKsC1S*Z0;(#OCv*5@CVoRk{aE@ShWPD{Y1yc!- zEy2c~L1KP@#Q~KH6ax%wgvh=HR)b-D*`IVfdoVmGBrpts0)cr7%vfOJ1zHG%Z9ya> zQx{AErGl=D$Y;haTfFF^Ov&~rJeWDav_d4Zc_PJun&QCtG-IcM z-b9K*B+rru8O)17D`qAz`^yGrOQ)E!GqbAzB*#u-Dw7!%XO5>igT(`w=!w9dgFXUl zIUFk)ois~V0S$B@;T+hCNJQ3542jRuV+i)&U5limdX8OBU@MV%4phVj^%V?ed!Prb z`4N?kj;seL1T#FlaSQ>1#yXf&=$7_oY(oH2*k6fcFrHZU0f?5x8i;|hOl63JrJ{7O zJOk@q*nH+Kf`AIiOrkTJ2Nd={3A5#5$qLkMW;PCG7QwM>16vo&%>i#q0+G4GLcXxX zL`A*>SrJHJBrrxTk^t5)V8C%~2$gJ01ILL(FbR_#Sv(yGj1dEC1r~z@8!$@$M>^FO zv9KI4s0T+<>|{%Vg(WZwh_OJI3`VLMqY-!#l?*0D8)kDrDuJ<12CGwZ0+>yJktb2j zfx5BhP{c%1ok^ywl>%#>gRlbQ1NlIg!YBcBC>~{XSoR6j$ACz-fMx<2v&cOd-4w9f z;SdnDMDE$2z$8=gXaJb8kfBK+S%Ebb0|ssl5L3k5T(Au>1=-86`U=TFp;bZskam1YpWaS;%g67ocC9^;>ztPHva(aS?TMYvkBg6L zs>o|(cBI=LkbF}<6=2Xisq2W0KhQR| zX<_|bgFVu>gROQF))1~;yER|C{KR_Ue11@mI!}>Rqe)LmKt1*R0%O=#oS< zF^P3A;5|w4iP&iwqAnUSZy@!+Sp=M zvgI#r-l*u=7N7JV$qbf~YkKwNmd~vcfyH+)hm4wWZn97NnlU!3^c1%{C$!pjy49I~ z;NE{>m2lKGt3v`2@$ux%w&&j6FECQ~xb99ID?Mf%aa%5BPKaY-S?{_(cj_Z|n+IOI zD((AuSbdH8CHnm}+yQS7l@|9#9LzS^8!HlJ5o7Rs*g{W zsct%IbZURmgm!vaV9(d#9yR@kuane1=_|Zy9bY*-8E&dy1#hjtk_qazN_qQ`>r_H5NVtiAA~kYnXpHQ!;hb z9LpD2H~Mx-%aGWH>R0zSudpEsIu~H6yau6zzfV2QJRkV<%_24V0~L>74BW0V$SA6v z-zxJ6cS`Y_w7QX5*IczQzV#7Tzr~9lTV{|(eKFw~d0TTd?zOu_rjBB!?eD#^RY@7= zeM5LpeKV<_@0eSA`lt0?wTjrZKlRjg86zu?Wxp4?mOaWFt$o!nG2-IFdwrvUrx%Vs zx+LxUZBPEe4_l=KdP9R#{2F8`8y+w9&ezhc?JFMXT)Om=rT-by*4yt^tq3~$TifqI z#fiPNi|56gvz^ZDB@G=;eZ;?YVr5PGsaO7;%R{YqAA4D6bX7n7drwowMXe~i9e>qa z_g1^ByZau}3tmCF-LmNO(B`y3&F9v?wk8c2IX%|;uutL3#m_x20*~k&l#6IRwNJWG zsb1Yzdxe|Pl1^o7lT7l$2cInD4y--5cBQmU&%RVHMdzZA30GdO*^nbiTvt%Ht#)*> zN#tvj+1#^{j%&!-sfCt?pW1|`=3?GorCi^C>c;K*)wau)CcWL-vMBe$YFYn;uERTi zUvs`?w)f{{&4R+b{dbe@6@UCoeYwh9TQ^{eC#zRSRk(UhtVcq-scylJ6_=|waI2oF zrjG{ao=!L2D<*3(n4Q#Z+EW_x>#)q*n+N-^bnEV2MpEvt?KkLf#OZVtoN%m^Tq@Vl zLvT26S+u&dU0!7VNWhL5wdZ@iJ2I~%wu%g-B{pv`Zad;#m_K&<&!ye^#i7nwSr6Tl zWn%_%5A`=T70?_~Ra<%;hiff5MlIZrDf7>{mh~`lIP~R@^3w>;)w#1mq<3B0-N?d z`>T*3er&IPeZ9zrR;os2>(5UUn|1QvXspS&RcH$ z`nd0Cxu)XtJWT5KjSed{MoUhWy%acBb;rHHoHSoGP1>vRYoW^2JDv1X+?USRUC{YV z))O(~f49kMOvWx{a=yyxv7^TZ2liolZkByY)kqO(jymE}L+H3XV!lJ(psM4jZQ;?U z6~kX2sW%KrDXERPH#=iSZIhpMf11da`Hnj&wpMKa(si~!+>XY4pgpSn@b_=qhx_}} zt{&Q&=!h+;YMTED_vqCFn^ig3TNt08r|j33<|Oe(W{yW2*?wN6r&;BtrMzK)U?zL! z&706|uVM_+(iZXEP;$JNA@tdhx5vB4tvdd;<~slP`GO-`5?m=66d{UZ;VJDzW7Xq( z*PdCUF8*56Ngy)xe0M>v;(@BLH+KcSLQidSHlCmQFe&Jvq`E$@K-u%jKFR*WgTY-v zIoXMkzJ_<7M3(&g-kG*R=y@FNilV(%bJJXdgdbj>H45sgroPtab_Qn2xDW6@7`$A4 z{GmarTj5r>tsg#=JR0c#;x4c!Q!IA)0`Zg(7N4ZF?zu-LSCIPoU=xzzW5StDJG9Qp z#Q#W0#OoD2wQ|M@}nb`?tw`?%y#!ZGT5JE+yTOGmTj8|EaB1sQzvD zrFZ}A8@YaqRF{iW{iu3;=txIuPvkOwtsavlj^dEVqZ z`@{U~U;cV(F8$Rg;Ps9bFE$947V>Pw9Nhir)bZ^*RoufwbHWrlj&HWSdQ)-E8SH`| zW#^Rs&i(x7nZE4-i4=(zjNRy{)V-szo=5pVSe=^KW?{_tcR|Yh8shnF+<}3u5A6TR z{bitAP!VB45aU{zb8k=JkNZ|R@4>u?gg&M_07=UTeRgZJYK~v%O?W0jkVtBV3Vyg zU;jj5L}RRXgYs#a5~;O`8@Av0b3~7)I%UIsE!>*DH^Pzv9QY3m zHhVX%>bp5Fen)~rYh(&lNSqgc#fHV?by-O(C^i+Ow8zAQ|VJD_T-ljIQf zz<-VUtKV_ru@^r+y?#NLdxHYD_;uq2=S_9HJdSsFyr3K?cJW=YrseLoIfqSFHqzJC z{xOIpg?)^A5@jfLuh-r^*^YZOF`?_-d8u{05k0AEUgR`Bt=nZUZW6zqBxqEv6-!(& z{{de=ZuqwE<*=WkqQ??K@ZE!bmx;TOM& zy<1_>aE5#&>+8k0SMKjBv8dtMHoCM=_N(*RM=R*1#hDuQ!BsV~*ND46_g+|^tfe6; zvt@#mwAr@1GuSL6?(`!0U*_f`sfqiVG+ROx8kbDWHBS6(o31z}+gCDYWqX8#!=Kk1 zhRQsiUbb)~o)xxJOR~e9Hk_Q3V(t0Ns78FTi_oIG{6Q1vrKUD2AG&fg&P{_{v?JtQ zp-6CKw6DiI#a$)h4TP(|Hha?8F_iZR?MfG+IZ> z30}*~$KC7S|H^DiH_JR~{`K!)<8*)cgO!y8F7K&w&XJ^q zRNK|Yn%$-rKHH4F=qrCt&S{aeZ0cwhZMJ)*iyd9TRgmVt^7}F&U2c<3IhpYXSM%fg zkMm?L+;u_ofbSNegk{lZ9;**U`;P0iCpUe*p;@J!FlSfnbDnB_WiG2gq9mbz1D5CX zVE1tR-s_cfJkLB_GPfe_y!$(^JnX5>enzW(H$HMbh6!x{Xqf72J1*(-50NVUS137W z{O+56(emeV2kqYKgcf@otU)sb9A3p5Dr@x!NpHUZ0rwlGxwNn4du_&#$zTo?=60Xh>!&}O_Vjx!n8gMlBKPg5oWd;MfO}Nrbsygm!JbS$9n&%B3^!+!>kGq4v90 z_Vy{45xG?>W9MZ1i&bqn?R0U22o_^^IO+b8WZd-BHUUBpRe^yAMljdp zSl*nf!EM1$w1gavUY07Fd${4T{0XJ>qbh5JmPBq;0w(;e(=TdQLgHhk1Af!=KS!Iu5K8(ilBx5hNEhs-Gz?@{{Cp?&YRcAf3mPaUOnIShvxF<;(IN2S#@=O8a|lV zV=CH4ZQ&<9Nx6Pto%;GUdncE@eRy$YXKC3@`3$`myH2Dn*e^-!H2ZEQCxSpsmtFIlanaXcC)@u*0`v|+wNi4WnGW&W*cNC z^22XnPLOh3Tt?pBz>+hHRGhqjxAp$&lbh1bKAN2N&E_V#wzs7qIl1e|^O8&RdtV!i zb}v<*>uYr~l_xLvQat9ZcF0SYfc(!ZFDCd(D?IZI^w)e8$M?GDf z?f7J|fm6vwT55J;iJpLE=(&O|&*=eHJ#CezzI4urav3v=zr z91`!$^P?a34NadqFEt_gtww&L>Fr>a>D!(w0!k_mdTjmY zQk=-4L3)K?t+sPfLLDFGqtN!CCuZ(q8mj90c@gu+_Ezi+uBxi@+)m%3_ zwd?T3o|{TE(=PZ+KL5K(rzYjyE045Y{0oVXB)o#B_B4)$n0xZOOQ*~iJ>t_C)o`Kn z+28t?t+u)6h&4-uOLf*I$SN%Qm6rfM_*(W^AHceGnbw?D6^_+*SLvNx@^m8?;nrW)hx>f zPSxDVY0nSf$=t~|FMx{OUZlTbf!rAX-8CMc@19Oqz(h~t6)hZ0Ze9Je>+Q=Er{4x^ zS>2%gJS8%wtRcN>!26s~d!2o3!xUev-|?t%v!@@AH(-ML-;jsXV>cRS4y#uVq(oZw z&5z>#TqMi2pfSF}D5Lku_khc-^)wzS(V#0;4@0uavEt{-D^oRJ3@oy{s@HX1;Is1R zo?lh`1BR5Lafh0oM<1{+9dfBdT2m)VjC7Cs=lvAox*9EgUG7Np=Uv0ji_Im@=}T7` z>Rlil%=oA9@HXosKNje0;`53N2*Wsk=?vHr+N{UZsd<0F%{$!$@4c&@m0z(`x65fz z5Z_<9eM&ea1pDMjrCg2w_Urr+BHEX=Z|e7jNGhD)K;rA3>?P*kd9{H_OTDaQFMJf#rr?z91Z~KuX1n<0#Q}H?M6(rVrCtT-EoQab6 zrv<`sh9@^9y^sE*kRK_MIUM$IpV|e32Lq=^9^SE!Zity|uivs(NV00-!iPgkpWSdY zIJe9is}WIk7Vq)TcJk9Go(q|@GQXW%@?S<2Pd#qYlzq32~-Gs+f-X$?F!s z|Moh(&oM7QFV;KO_Cq9fTjx$&-T7{$9IhW*>iRBtS!Trh+Kq0zm79EkcTV`+d57{R zgqwoLfqdKCubbcxAvS=|4-770Q~M zpUk`b$ou8`rNQ>;FPk^t&Rw-KMP+x|jV%EN=XMTu2AUp=8IP^Yo*$=>`8%fnYRYKV zwU;9!hfH@{t=_(Kj|G8u>B!yIH*F%hUpk&^^eP{TC@7x#ITd%9mwWfbl>UXp%$weB z*#(CMsb?zsI-KJRZW&$GyXX15^h}2E{a1I>72F-au5&uu?Am9m%8fV_^g#rC3MSE zhlr&L&&rMRO8;DHTv>GK7VY-H$4;Cf@t|(~+fsEWangdr{a1_&x=!fx67v0G{9V=c z3iujrUGJ$c61eE8#$y|xBdwhBUW3BB@Poqj((V&4%{wOt`F_p6P-{@U|5!)Jz@pf- z5+x`40#VXidF!>>{ImRm8hWQUnw+y-lfNsl6tjd} z(Q8&L?B4D9{ov|Fly6@r)ho$qC#_E5iJAiMUXxRjb30VJH*!CqD+H;&N)o;1Y~8)~ zGXLHqt8~n-zKc?cc8WdQlJrw>;78VKi-%&_g`x8m|5jzh{H8v^Sp8}3n%iX-_D)s7 z_KM%nldexXpW;eAgEUWlYv2!X%HJdZbyDNihXc_>qIZoRU83xBTHTtuLgfuFzZkuf ze3g1lUhypSh!B2j#{qqeQc>87tZ{pX& zrrTSuW)xfx)WNnX73`Yt8`{)NY+C=%1>2MYJ(04)G~MLi;>T0}+^_j@GKnCNWs#8_ z(&AjzVr-J3^(v>Ww{f>#X+v9Uv0Q|TilKd-j)%wGiFn7@?J8*z{#hcbT4@WuID@gA z|9A0-hU2NIRXIF;6}{)Ks4r*>TIG7r@=w2;!m&c~x(iO*zukK&aPY>Pz5k@*)HTm2 z@*b{!W1)R~Smk!M)3>-)f{lbo+W<+Dy+&$t$RZUte--oW=7E29m%d0(Nf9sCQ_2c$ zj<{{f)dTH;nooa^zP zvHUN5^2wQZ{=Ac($Q2}Y7!H!d?yNSc)P2%z+I4!wtAT#+DE36((l(KE#rjnXuiw_) zlvGdpnDeJko1A#NuB{?hzFzKwYrf)_c-_s?I`o2zZ*HU{Z&}s1G^s;XMX%?SuFYi9 zN*&6REQM#a(vvYBci!fQgd~2<{HeiLBvhz>p)GcT7CY~z=H}n3qeErGLYwXxJ>M;q zYJX&o@Z`@1H{Zmst2e%E6oPMMbHvT;u9+M16~1nhfW znFbv%aC5uf9-e2W6u|fPuyj*_R`J~LFPg#>*SvkYLiI@9s;62F_|Igw1r3LBVG@^O z4nD5lnzQ+zccp_CwPf^d}~dRW9;q-%asLdcKt0VOs;$4|F$shZf$>q{1ypvS;_o4;mpW%jbrqrAWWxmgpa-gLG4X;rFxQUmz<+$-opM}u@nPnU&i%T0k80D(rfF%?h_JA#Aw^4a!;0y zb(`Cyr!_1${9L8p9PYTQ@_v@BGP!il<=}~}MqJFyQZ}gkhY+z(gS#tu(;J81ZISKr$tmyN4N)H} zv=%RjNpr+szxhx${nj%vWrq{T>!g1ys_58Lj}uvaEwVxF*{zH~PafV~rOMjv*=v?9 z+(a2AepMfJGWrw3Uv_VCvRYT-7WXu99@B68!j@)KrCa+Yk7~8$+@@SiU%LT`2kPD*al>MXLSgAb3 zI9TD`(LNH)D84ATLs(Zv$ab)M?&;?d9=|s_{B+rC`{e1%lG5}P z3)0s=-1fZ-vLEhs<=SK$W2gS(!1lK*cAV+I?Q!+ov5^aN2Q!pp=Ht%3Uw`b4%8i8y zhWL;575?(&m(Jx1xx^G+5Zt|X@9CH%;gB_wr)1Wy^Hk^CzG`P4f8z!#*YmrEWJaYc z%x?UNe|SGLY2>U^tboOD>DZH)r7LbaSYMM>7aW(+t)WFemfJQVc+_-?>ZGHw=Sth~ zS3d2*wi6EYtAoo0IY&DFErgZw)0Rc>XSx85+O zp7OWAwU~Uek{Zw-Vd*Zu_OA1J-v^e$r<2Q`(biJ48uj?r+-wuvo!wWiUw%$p`|7i1 zrJ9iCt@iswa&<+1-l<-%u;7H#|-SB(0A3(<8Fh(shvnG+Gqua*8|%=Xak_>0T|%KcmeU=^=sZg8>_h^>%KgeC?3a{+_j~i^(9EkQ%{#4($}V?acjX`7_#~)&rH)NpG+ksoBUAo6zfh@$+3O{b ztA925igss}JLl(W9N45h@A=TP)=zi$KaW^oxFX=P+MiJI=O;g;%)j&0AO19s0aS>!}hmFJLm1L!)tucP?Rga@3Q^* z^YDP{0oo7R$3jf=mgbcHG2|~)v%2H9Cpt&Aw8?+&!FchiRS$QUhn?O5dUbuBq zcm0p7yA<=Kmy)>79x=T-WxC>Y3(-j}_r1fy@6SgR<(9tR@O3O=pR?xAWUdQm?%(~a zez9!e`s1zrMtMP$^-k4pR%a4xFE^UmolCxZ*pGVyZ;bwe>(Q5+%T)x6Z#Ny_ol=wH zu7CX7kYJc0(Ds`Di^C1y?2x_3By7DJBUXEFX^bmcUh)0YD%%z*$@Yf{pU>*v^|a#^ zIuf`kp}TMY$B)-VNW+H-^^2qyINc?A)p2EJV5+@J>1tgv>f+Zg?rhdQ$CdN5@3bHv zC0A?Azxd9f2T@fi$q$-MP9JP99V$J4s!HJd0z1{u5`(Wxc2}i$eLRH?ttzt1tn|){ ziQipH7x{J<7vo3$)ueSK@O*lp%iT*aSGkbyt-=pP;{QAku6Q--Tt$>z_e>1C`@y4& zye3zj`y;d}ZXEA$Id+q>Q+~TzBIRy|HF>;ayTDXpDy3MH8v3(trSmyr_xIuLcBlIa z(mZ9dGlT8Fgz4*7y}aluvH!2j89TY_Lj>yLmmd1JjxK)~cVUjQ@z!_No>j%4*J3A| zz7NMrxXqhm{aK~u-r(lFi`th77=2u%3sN5_!G>+D_d_y zKa;n~OW7eQpJP79>(Jv(d-AatNbfyivKW{Ah6L2~4$hgFdl8u7vZOSA~ z1bCNxx*u)-T;lAi_2ZIT)BS%=K0cU}ThhFFwDQI!A=UK{c+~}HXYR-iO$;6!95M^c z%avGj<>JNa!7IrJg*4NRLxtA`ixrQ4i#kddYdnOnZ`d<>$}29(MoVU%wbG`OcR$Do z{&*Wz9_r(?)_-Z-JZX)N1in!H#F0%m7a3MH6g^%RHRd3jx#!l?^p$e*fv4p3_*E6x zDr3qw%S_JkD^(+!#r~Em;$EVB$co%67Tq+5`;4h~o>%Gj(OT1ftYVk8awC^^W&7aQHT#u5YL68jwi!$6x>3met0=9Rbk0b} zZSX>c>zV@|Pn~ql4|HiO%Ugc!`jI!6FyBCMEXGm)bWdRZp*q~N9|RMgnsiJ91W>m}nmk0hJcjf-7sTS2hz6z7#s zI_98|p|0HS^wd7tRn~E;Wi9VWRLeHLRjNWOS9zKUOcw8zw7jO^*HAfc@gmQdlg~Xp ztdh!kOb?3rlCF#Fz5Ha|sEvk`@U!6PD*m%(`NMKI?>z0>b+Yazf90MFg$2*ZLlt-Y z+>~u&(=H?&er!4KLwu~HMCP`G0iU!ad^ z!T}pgk%7ijf8F*;ha^m;-|X2dW3uMxL1{y)ywc!e^T&2Zhf{uS#CL|7)OH$2m`;qp z8`1bj&(nrCEP+qcXZZV*%>v13wfmDso_(YC{`f3#LihV2JCD||yb9md&q6O>uU+e& z8sXV=@oee~zAq{+?-d5rPSP$v67QUtd}FK;Sd%xk$)x)eO4$E~&(6aOI(E&$^RWTED=TN}ehut6nnw^}uU!{i(WdJ5t1rHC4;YCsZ__`??BN zTu{vH3m>dnbztqWFS>&7XxRy()|tW2k2ah7-(YGu2v zc4x#rY5N%+Y<*mP-usLA z4gINqO`p7XzT*}Z_GX1%$Od_zuTk@edprdD~S?#pZW zj618&%6_|qtM;BU)C_9>88)$BE!VT%?~TH-smF7qEMi?!HnmCEcBkm?tnPLb-?sjG zYup|$v3$+lCH=3jsC5mLUGcnRUTeR|M*4t^Z&~Ae*Als&64j1N-x90Vq$wnMmvXu7 zt&lZL&%O}TBDqJ>(!O=+Yt7X2$q5U~&US|eym#I8$Lq|qqfb^eslM@A;(7VUMdNn6 zO*QXo2EI9E`?~6v_xd=ir*AsCbxMRV){{~aiFx31NIZ(Kk~ndjvhAabhOUf89;VTJQ`gv{$u z?*#K5T*x~2CJ4)f;YZwWK;$bBd`f_46G%-2|B(o0$c2$)JLhnmw;18HJOHs2{D%R0 zl-a;peY#+t0gwj?ql{dbx$HbMT)iM#3%JxHK{1hwgP!352GQKZ?8qG>$IEKM& z^&p!XqX_eH=UHqs~r^mBty~;$S{29AodEtLfOCyOn0q=;P2=PK%r0b zxMN_E$OP#iG$3Rw#;z>O5f5^#@ngnPWKg zq&dJ%5K`I!1uC5YcmsAB zAQu#eAjfr*OJD&LPznHoNWtL32%$VGA)+22gqQ#zG{n&ol3oK6TWFZM|KWcL(Zc`@ zt+wKSpb@uBm_r)4WI%f)!1mUJd^;gI9L+_N z=^n^-v;!V?W)Qd!0HGn90Yn_3Ag}@r6k>8@IEX^TQ-FXn#WE3~Vvs%r=&;*_7=BMo zcT$Mp4MuSgL=a4$7zj`W0NAmD9A7C2Sd9kovwTt^l?teEwiiaIY~NG}*$N;~vBhS% zDnV2-K#4Jh52Vj_6NKavK!$xN#U`UX&mi&!Kq8U)kqaaFZnDMMDq00KJXuWm?NT}DGu3$LAbL`npfP!5y_dh(HVd=*K8d`6u zSsb7t@*cYMxw8yu;3((-(fw$?GPAl%L#$XBN|vO0EWvz zA=C(mh3^Ik*y~bku_NAwELUuZ%m+v*wz3J$hPZ|11(vaB$8E^w6#$8{*+`?R1pT=o z^f!RQp(4)KS+<)ugeiriEDt}+`x{c%0xC55LhO|-TCb=80YxCpMj*c8kO_!9$x%|s z1U-7v&`iJ@meF=Fh!{?wkWUFfLFJS}#u!v2raL)A-UUb~ZL$ACeM0k7M)<)QVWxXJ z`$B_64)3^=z*1 zuuU}}_X1{VVEqhTy&-)F(BaBM7@@P=jHwX98;R;-2?PRkljA=RacTeuZLSQ0o9PtI z;fVuS8FsaV(cb8g-4=AQsw~0$m$N<0l>l-v0)ZpqmHVIYivSLH@iHvAfpEvj_eTN0|0R4 zhlNoBAbk&@bGjHEJOD!S0R&Dpva`n&fZ(eDEX%Ht06WwGB)4V5)>vxhRxn5=W?L=|I?00E3c|W=Lj67y}5k15jyporO57V*`kY1PD%VphFi- zTcjL9mx)DSj93Ve%|$?m!WKufLFNSrdyHlyfWW4ahXEPNkXZ^6PyuG=k4BXuhAssh zjX=~qfPywv3|Why!Y@D+4vi83C`MEUNcI3^SQTM(um%W;0T8G?qF^12is1l3M*)b_ z<49#dXa`8W45)A}VpRe~Zb4T9)qTq#gHHefyHAlZ2hScK0_K<#gW7CL{3~n(#OVPX zG;3lrqDe4NK(9_By2U;hP&r@I&sW#i4U&qGO}QQ5!0880UUxijYoR;&t$b^z$Ph;+dP_LHo@8IT+g$WT4SK@62?@iZXp zD1gD1%xo}6i>{zyBGaO8Kvtaq0|hKSTTl)N{RN=V>WEH{)d4|Dv8cX~_*V!Ih%*8> zsE4A{BYQxQ8=4syib%v0c7zWIibaFOkS;^T0fDGIfPz}f&k7F$sn-A%4pQ-SG9P2ghcq2PgU7HU(*mqO%m#pgg5pKuu0WC-Ai;`Z5c8yO z2#KM92s@rZT*k2`ssADxE{8b_|3zHQVOxtP3ZX*1!0asm0Xs!}S_Bvn#tFg(0SuY} zzz7C(g$SXYC`J;jV3?esH4wJ|;9&1cfUS`&j!Lxwk#}b369J9mL%NtF5Pv}9^aN|A zG$a3RfPpOaQ9)zoJCdOZ_h;3x&VXbVd^5`c_k>I~Ub0tlQ~M9>h< zIDLd>gLPmBB8EH$r&Yz0Y{Lj;%m@q#F}w+=sz@LbogJqRaIizgIgcN~iV-}!fb7fw z3<^&Y#1jP@3@|d;PnJ0S?hSyj--U5zR1On0SIU#1kLa!_7>9tzX1S_R|yh`x@$&fJgq^3 z{oy!_q!LjA5<}zA$2lti3XUH^rsjbN;~X~j004{QW7G%MH3ZN&69DKdds{|8RkV3Y z1{kPXA}01U8aQ@fK1_prPN6YaTOtmG!nP-I`lbQUp@&cg8R^1z30_#KwXMiy*`+ zD+gy0;)ljcnuGYamNc-r{da>70w8RV1arj)0)>J-`}Bra0~{O;!eBZ>LWxcv<81%} zwHG{(;y{pRn0QX*zM;z$Vgu1fqSDDI9R-I}W_To=BNE0}% z*{G-^!JL51p~n$A>zcPjUf8yQq+*o136RZzB?kdD zVb;eWE1Z%vz&QpIG!wCOU=0ISI&AHwvtI?k8JZtKP7S0?aADN`JEsYLBLPo=1uE=C z{q{)=M9U|F0Gj`rNUZ@1N>H3YH8GUL1LVo~*iX&xDvtd6fV;^?IV)p?gR96Y6 zt!5Zu5OkM<xD%Wef-kJEPzSXjY<*mU!?kg?}mU zR{(-GLI#X!FiQ}eKxj}ft%LT^P0cxvfW*>JhFkvMSTkoZc@j)vbyosB+(9guj%S?N znc_kCe-Nn{4^De55uHb`+dV<<1?d>gsE9K)^6f(@{R}YjWNX@DWCDL6F*MSsXzYB`A*RSwK8ub5vE50hA+-8Bj)`c_@x@G*kkVNg>-)XW2`&0UR__ zbJ;j+0tvk608|xu8;KdmRR0EOIHaX#dq)ZUEtt!GR9*Rqcn2`}!7oWzudJOdD^`Qs z8_1yzWaMMZgO`Xmr*Q!ai>P$~b&|see#T&lrfvsRm{ov8rh=EMIFeA=n*cz7%^QON z>}^qGm4hgw#EZPq0!7>gh`j8){8W4Jf)=oU=Txl$(4ksm%yA&dwHb=6oPpwv{BRlB z|3Yc)IE2b9z@8(yFpS?%vVJ&+WWX+F$S5!i)ef-q15eQ@bbAsw7~=v67U+34YVpSg zfmJN>J~aqBeiQ`)3qJ-Y#ImC>{<)~356-I*9>|Cy;_SgYV^F{a$568mlA9xEgzoLb&rv#s)C{bY zz>AZ>$8=n08>(h(W{jUdqDp-BVs>UTah@G0W{jcC*v*6LgLw4J*_|Uh?U(3&=g5vd zlu+gKb)x$nKp9pLtcAfDFo)sVx2S#>L7L2XCNN_tS-nG{kOo@-lLZz5(`>SN7plPw zR$$@!FJmOtjbbGMSg~G?#xk9#s%iG3RuiHCiRc;y%>5K_+RABx)(4bIO0i*N0>hLu z7DpVc!AI17OAdu~v?U=sB<8CCP|W-LQ6~?GMlk9Cm;;v;bR`^yP@RbAAs9i(lQ%l! zumZ*K_GgqH3UU~tAf_Xzi3w2%)N?`BGe1s?w8v&B1PaV}^v8kf{X{8*B;X655&ny- z?{5?oX%2+W;CbK=syQ;O=73`^@J0^sk~YS+3e_^g1l$;a{XgeiplklqyYH$OfeD%G z6q1fXB+Yza_%D0yG>MWlqKe39H?;&CJyb!Y(7HbYybR!B2OQJPSq2;tu}(z6qfht@fx}Hs4%Kia4jPf~j9(0JG6^ekb9PqX(2!jO z^SBSywEaqGA#i}KW8(kE-h0PKS#1B~n`HONPIi+Js&oXTC@O>wwp0kDkwQ~klaPc! znkh&V6)V^Q3-(@6!LHZD(dHw#pdF6BQlk+}j zX3or<=ggTiGYoleKc~<0vVP?V))?=6n5y=|aX}i_ zlt&(J`PU9*DEJ!%*v7(&5_TPXJ9vMwguDNq;c;fMm?rnf+?y(<@IQd0HDIzTG*luV zu*>70W9hD%Ey@;zDe28|aVFsvyT&R_O3r*d?IMkU zy%}NfQzyikg>-L?kG3sgcp4|gnH;1PjkWg=n3ldiBF@B-`fAZmRl@c$nDC?G%&E;@ znk&jKg<<*PXx3)zsynu>gBH)tU^7@H@HkZpb4BmVVx7!!bBl`j@V+O9;c$>e*;!e3 zZc$b_@6A)Du*vP0jxClZQ<%a&pBiU^0@7)Xg1IF>&P2bu*gHJ-L~%6A z8jEmWB(!}7`>OQOTGu0u?;|n!hm|t3Ccj$FQ&~}L_MzoWKJCKDxN&4%w#?+!);l&) zt9`<3CKj>j#CDS@rTMrx&j9I( z;K!mFmISXkQI+hgHYcT0#FKH6u){NpR6#ELkx)7Bl9GZ)V? zs?VtM)WR19ubb`I2LTp|ZWQ4My4Yvzb&8CDL81_0`KD1`< zw;OF;R>OL*r~H1%=p=R-=c<~*XSWkQ4M(p<>^r7%CLQ0Sv^-NzVHvV7%tjEORs7Kg zrr(}&j)w8rk61H~At$m@*qU~VyQLSlFdNs|b~~N8lzl|Q)O%YiYiU0lT3m#ufUza5 zT*uk)A)Pn0Sw$XgXWxM6Z1l)BV|)4}#@5{~E&Qc!29ICLhJhO%P5Pu|2JU~5$*Eh; z%u`p}zj43x&A>05!iE#}DWg3B&fxc-ZVI&st`|%8i{T7jekOyb>VT5-)HlQZcorM1 zVK_X)PX5yw=X8u4&2R^-=@>VL;qE-QV;ml7r*e-upW#wmFOTC5d4hQ^WFyfHRs8L$ z2r{qQmTMTfOO&_TnTj`F%Rfx6C)?E{?hLx}IyTwUTu}MCJ3}tMp83383CW&)XW*tA z*o;YbJps>9={K?OL>Cvze&(2At8Qj(lIt_unQ-#{7;xt;%zKgRGr4nOo|b3GuWw~7 zl1TTP^9<>^ogvlP(1^$A89Hkt`+VCm9fZoUFN9a>RfdjQ|Lc5#Yc9QZ-Xk~mM0C}2 zGfk4dcbI`F4vb^MkGP9zHb{wv_*5{^v76YpwVwkDf74!S(EWA)b2GEW{Ykd%nuoKq z;`ZMiXO3f~IefY0`8Y!+eO!hdelJs`jM5`f&$S`a>3-%~cEaP+rBg$4p@^g{Jo?Ba zeFq@rA0+Ed{qXW0c#w^-AWMTr+EkoBPF}%~@(|Niz=7lyB3N&(x!{aqhuToO0&D^8 z38gv!xuncgyI4Eo9Gv%IZWSGz9q_^IBG{>brD$=u^`IaR@76kQs@xSLVCoju?lcF8 zH|OO#S$UC!ybVZNq-v24(j~I^5hl`Bk_>m3=Nl#621rm>&rTAZVZBR8JQjc9qeXcDa$5V zO{<7X9k88shJ%q||JfK0_U$*aE-qg2nX1VRoU^Zukep@6;gApCPeBR?1;9RwbGWW~ zk}Z)tJ6zCb6zH0#*mtOl4g)9y6)KxkjA(=I;m?7jhW3d>vMqc2ek9qZNLZ=(O113q zr`g)DS0qkPLJ#l`OW8AQ8Q(Vw3(NqNQ798u4cFJ;>Z?b@0a3W{WN{HJ92Il&vn&=9 zt!8*MSlT_tQt}+DS??%ifJKHu5JskACO*%W9MSZtd1f-EQ7D#U;&Y3J|!;! zHX`Mdu*FklT+hBLi}e)Il`OGG_0^;oV@XmgR}Y{L`VEfO${@L!_@2zh)(xILW;_qS z#FU|RPCQxpGC?B0NUme4m>n-Oo$G!j7MXGq#?XHU>sOhsAT4H2$o_27Fh2z-G9bzF zFalPji1f~tb5-4?CbbpDE%qrr)xOH+c^busk?UHVhnJZ>fH}yqukmjLM`B+mp8IcK5|NW>k<*u+{GY*+JY7gm8)y z2jjnqGUCs=>q*oXK_!)U4?EnV-B+#Z9v`ufWzd*lIbZrwo!tjyw2o6$ zP49vPa&m%jOyzm6vOKsC9+47{UpYul_!k4=c!M(YvLgr~J~ka;`5dcG)ZRN;o4SR! z$!$3o085s$tBsWiI1sq#P`>%j3};kPqN}QO+9zz$;0V%@LT44A)!4wHPW=e#q;Q$6 zG`moutM9ewp~@Wp@5st)pw9K`5$}M10GRUhl5MF_KkgAR<8k_@%&Pg+3Yd8U}kwq zDbfm5NRTA<{DJ`!<))B4O=7CP26SpT_8aYe-dR(T@P@@KJmf5n4t~kHJ4K^${0B$1 znb4~NqlN}GY)VERk`Ae6L%(8OlBPkWQ!`4C!5~uz3Aq_av&PX#^I<385nr>$dhK*Q zB5nfFt1X=$nK~u%Uo;sw>YR&n4JSQ&ssW@^5@g~m)6+3eiiYLsfGf*7w<`U#kf+Ct;g!32^+o%y4SI&qwf z`ZA|lp;04ciH13M5Br{iJZ6lGyq%MiLg}ILi$bHuhbA%!**|fmJCJcM$V(g|Y{-}p z;)&FT;=Rlw_(Nk*id)1R08s9(4RBYZ^k)W0RXPflmKP)AA}!ne$<{|y z;L`uFo=UYV9Zg``FHB&vta>!mO+e8WzcW1SO(JE<^zir%Ffw=vGHczw*w+jW!z8At z!Ey3`nWqO91X`!WJG2kowDd8IHgTVeFP-yU=BAAv$@u=`rj41vXr;fpWRB&0_qb`} zI4$)z7vBUK8Dezd-HlAX?c%J36OPZmhn*-#VpmMhyTecZppY!IrhG1#XICHK&CZ? zRfvN}MHt{jPTbGPz3ful-|Db6Z8;cvNo$QCt4~yhGJ9R;u?D)G&uDVRajFqNLMk0> zaQxkfFTGY&*c1xVsxJLWERlyC8rTM}g3IBLDygQ|gH~7@;t#OAO+1 zAoQ}sO2Tl0m@vrDxOkH^21t4&WG#pEw)LsM=5CKeH~({R&`z{hW~g|qL2gY)6(DL< z;~V4S%_rXqjUG92B#tiB#5?4dKsMtgGqwQ(Rf2+U@pQP8qOz9RK@=eF7l|np$XE+oEYyAmspGlQ!&m({SZ|4;U1mt zq8^**qK=dGF_O1(Y7e(^jr*vZ7KAfGXLAzZbbGA+(MJ&RiY2OfH-S@kqL_^duq580 zbQf%7cx8G5Bc2T+X+_U($FC-zRoCuKfGObtJvb#aHU!;=EoHUtHM>}$D!3wvb+2L` zBkl2uc!$0}3LT0h`l*3%{?RV}_+TWR^PdqxSKkAYZzYHGr=xME{Dl$pQLgfLM4@y3 z^ptS3q;5(?j4rOZq5R<+nzmbL9{26wdE%{OTxl z&L2z*=O67V|H3GA&fmFnIR6+I|0PlAod19>;rw!B8vR|#=_&Rsq(zk;-roX53qe0^ zoSBQy-F#x58rQ43alFnzIuh5lw+lDAqjE2ghKo{epFUCK zMJe~XXt;5a^&8xm$?L-IJ3_Xwj5Oh56ld#lIgsS}Cdi|H%JGG-aEtU8bX=gS_NmXB zdS#5mpKg^;xf~WnrnpUYT|+05i*7z^hXcd3eg3SJt>oh1l|UyHKx%H|*i8!2`k z;2h|+2l9#Lg39DHhCF^Cn`r9pCuypcJh=nQkmCk*jLgVHyopLr8O)GM7gDAyIOGO? z1|Tg;!+=wG*;@}{K-F|iO9bnrTxp9~;V%qfP46z7j&%BLg^bp!hler;A{yLX<2!~i zc&fPqD8p53e92p&6E)Ic6Gfu$I0i<#}vvOrZfQktcG~*D~8+89zSTy}gfXH|v z`@p`WtkAwePM*SXz4T#IZ4qL-(pbU>W)xtmZHPQeirUB{#X!qZzdhbzr~(6BBSQ=& zxJyDZpuNQ*b*hUPp8tD>vRQDCh~dyfSqa#`bZV`ScN1jKBoA*!?i2FTvpiN$t@8*j z@rJ6=xue+!Eupj+XSm;pcWAybjFw6_^vMY_#gtkLlo^z{`M5*NJ~S#Pw=rK~?BX3& zynieks>%8?a67jM5C?TLP~^I$$*GDH7A2ufB%e=L8`y+ggy+Rb1xZe2GD@*Amja-J03sdHViKD(ku7nOlO=3=hrL)vOj(5nHa*FaDl$&Y9SatGud z3;~XwY#L*EGqU88jfm?(q$OLj)MVxy^h*hDDPX8wKvB=QP?-#M^brhYWtEiY$qf@K zY6HmR4$0?>oP9F_>;{0eUX4}}CF4j|%Y>3L_yI&)2bvBkSeAWh0waG8GL@Qyv^HG4 zBJb&8kO@ceF0;=KF!DtplLYK;JLx2DC4UYOIbumOqIJ|!NAqH4OqGd;te8tdreYFj zL^R|Z&}mKOn<2lejQi+gSa`=f!>yvVAW|ob8BtXKIS@36@J>ZB9BlWvUY5a@f1jYL zloH6$Vy_z0-vFzniBIw0d*dC-F`29;^15ocl`>hH02c$`8UsZ6g0YHkxX|%gMswmT zPFce#UvkR7K+&T{?BtX~vzatG_o)V_fuF#DGOyLNz`%b@@h? z(okH2LwO7oJ+#mV(rZ_SivY<5Mp2g69$rMO1W|LVnMIWQK+&~V`X!20$av(OBg$-0 zXwLn?DYt_{JuLf#csxa{oNqa$3=|rFL45ac%Vd}ae_;@%LG}D1^mVKJKK*>y*qZLSS0DA$@^UCs-=9eRd+)!^QV+JP~C-llyl?rmEz?&c$ZRMYK$<5P)1VL>s{+3})Q9!~fn z-kM5q6Psf5}!?NZ&dj4`r|tH_m1|Oo_M|0_lfbO()M`dQ2!T#+sUH+k38= z23A6Ob|#~p$!YPq_(%}jHz399`Xv<49>Zvhk7XhQu*F$f1>rhPJ0T4HW~_5MK|Vw$)aWeRc{N_VAbo zBsh>xm1ag-LaGUSO)|xt5KDoe0h*Xqgiw#%B_#S@&`lvzbMo;VlJuz<nJSDK+?RjV+`k?&lX+@Q?j5FDrOsK+M-&C@?QU`(y<`=IG7WvMliP|MI=j`7XU;ug3bpL=Z|nGiqQO19D&sg7J%q~xfRO+CS3e)PkcGRF)j8?x@`zdwU&KmFQK)F+ZeTrINZYWo zynI}{5LB}u{AsQ(D#tx-n6O3T1ILxw>su}qkkhNoh z)v8*l5pP)&Q@dZ@?UP%S$LHNg0FaTu1q<0Z@;XYla;7#jLulD&Jy-?q0+}k%NpHWY zglBmdxM|3NC$f;I55q{_i9%J~3M!dHr1q7}#Il>HeOef`o8Dm1mrT1Y+tAi{lgyle z2oK9$j>;*rm7#kMd}JJa8TrLiVa&4=9O|exRs(NlP8la&1tJaaco|nAzO;7s8S-PZ zB`-^vJ_1|>0Chp?)clYPT;i~ZN(3V3r2k@6V?Bo10T2 z?>NoKH*fI*>Y$G}i771&0ehM6i}wI9zU`AMg!}|ZiY1BAXoLrF?iGWI5KERYi{h7v zDRX2Hg#ezVtjUQIfM_hEUjRCp;Y54}WRQl@dn_|_(GP`@cFER4W6>QY|%|Sz|$r}Jrw+ebqf{A$KWTvJ>$8lox z(JM_WE#@-?J)tO|j8zPj;;exqWeq!>8ND96wK~3Syy7Q zq8ZKWQS6mhz zH?X%j?Y=cEg=^zY2BvD2+AYj!LQT8cdqn-d&d z<0Z`E<8?kv%_ykLE@cLwvzbp(pf#5<$12sCp;2(NFXsiT=^h33CT-bwZ=(ekQd8%3A zkOQw}Ee}_3wS_rh&O_$=d%@{ z<9O1gCd{FB8J?|8tYf5pk%6u0eEj=BJ`^%_*k2ZR;i-v0Hxec^(mtp@<_QK@Ij+at4fT# z_gy}J<^GHjw>VpA`q4Ys0O&3|j(ByL2iL2do#4Q~ypzR0WcLwV-o(O@r*2{&p$H__ z1|+lF-La5Z9uRWlJ+Y8jArSKD`(h!nNFd}}_s2qxW5~J(Vg9z_+xC$L_&Ell|B&@%Dd_7tudjzpHA5x6UsZP+fy;2yr=GX znnA-y6y82Gy2^MqrmlEbz4IIs8mTMZSM@K%g!0ace<>DJp4gy%z5L~vP~KUG?T88G zo%QsqF`>M(=Dr>i$~)`FH)2A0XPxy{OepWIKJUbY^4_}l-I!3`TT|bU3FW=@@dvS> z@{|zuR@+B0p}e<}K8^|Hy>;Erm{8tZ#TY-dh)Z z857ETYw*`Gp}e;qful}e#E2Oy4?IzC74MD-<-PUAcQK*7w^sZR6Uuw5^PZSc-dnf* z6cfsO>!_b&LV0h!^`Dqf-dhX*8xzWV%kyhYDDSOHe~Sf`C+VoSM*I;I%6sd{KVw39 zZ_WNICY1Nq_gK7jJhH~}-Z~>bCY1M9FKM-auZ`hd2fB>j|t_y)q?Ge zjx`|9Hd1f-gE67Jx2{Q!3FW;tCN(CM_tuM@VnTUuozOWZl=s#zU1CCcZ=KgICY1Nq zz#cK7ytf`cASRUeR$;GL(DA&tKJOh9%6n^B-osBvY`~{G- z|Kl15wyt=8%}wv9zice;uh;$t%lj*PbZohNjy>`>SU$-{j$v|p@lJELXJk6Ex?Gji zam3gJ6CRe=rBOfA>t1quoA9@eOE71FDIpWhS*k*PcSL+gE`yGywY;) z=^-(oL~ZUB>E~ZfnTsbRcm_+8j34!G9hI3^P|oUh_(V3uT!R3(5bxMGfuunYf#lt~ zbP_|lhPO(Oqy~NoT=e+@951?bGMg{1fnA@;fN}$bYQG~P`xyM91 zMEV_c;uCRRnXl+QI)OG5MPUN+{k#t4bWn6iS`>3i+%XBXe5{=} zH;q%y0!42M`5RaTeg%OtSyC|=WvUo$k(r8~pUL_+1=sB&`7jEse^!Dyq|*(rNa5fj zMz@njgG=4YaPELw{}#~Z-m;9sDe9eJ`zAl#O$2VqPB6C|bk}DFWr$y$5l~5POm<2R z8#qDvq)?RVUI7rbzVlr9@?c(BIW`Gtlu+@*a@mKY%j`KME(&%Vu;jWW+s`f8@BWsu z8lEsEfi{0d3Gc1XL7^Kr)E>RufyXSO+SE)1UKs?Kge2O<=a63k(Rr4Z+Q!E&JqMhd zXGW#UM&RS#Y>88ui5O8dwbYk`jrWYHCA@8S0ZSTCvz%cmBY;GgPiLJapEBiDab7vY z=C?|0A*NrzWNtwTV{)FHU@AKsQ$=S@s;mPN)CJRvwkoj)STtK+t2~GCu9p)~s~bC~ zW!Rr!J0Q*+U zbfE~T;xIM;euYdjEWIUDI9STel<#;R=5=@~n-a`5L&_qT(UUC-*q zmJYZ^r*pP3&CHwZu!6-?V56w0Yr#YJAa%?mH?WB(@kGW0`?XQpFr6>(*HdrS{Ok7( zr{hm|1nu`&?90u`>@5U4eOTl8=Ml3PDn5wY+4l7^P%^;3eRelL@%4iU{R{>XxLZ$~~2hqHgO-&rsmicJq zcqGr2Q1d-NbWA%DPX{5x8&4!q*={zGrONg$H(xE$h>pqfI+V{D#ZJ|bGX!VZ@l2jd zU?$`TD~wxg1(7=#4fNW{rV}lJr3u_P^?f2Sm#t)t?Cd=FQz#S1rsklR%y_U)Vc&}Q zBAlF-%MGR9NG_45+Ic^C=ukrow=habRyL8xC^`vEcFc5^ML~7 zd?Lr+UI!EA7GTJ;O)V|TEt5Bmg!EM-gsVBz%v388pLLjEEDMR==`5oti(c%L**kcK zOwZU00HUGj%PA;^PiF?Ayx$%tzEzG;d8sHE|rPH5WekzRsD=%at*Fr@~G7woLa^gkI3fg2WUx<8RBzZI=_qdpGCrYa$pK{kj zqsv+|ew1yLp$%Hc11YMMKJNgIjG|>fjO+o;A+K1+3z>y;6?iOw(G%C3Vl2OOi0n6* zNx(V)X!2UN#bW%uE@AR9r4Vhx4fpaM1>KOxfY5_cOvP78F3hMQ4qDWy#&|Ac*2j;u zY?Z6-0o4IKemSd6ngqz)@X}HwycQz8k|F0_!Hlg!hK+QR`PG#SIZ(>XDpGfn<5Lx~ zFI?@2b>YT;>zU{)wry>PzH>syg#pH&RciMG#d}(0va7&d_8mF6?_if z%EoEA=2>hFwYN#@a*bi^EgYZ$YOdJ3p+=5b>f^Izf2 zF6xTgI5W&@zDxE#kd4bE$u92p+ZkDH0oY2D51G3b48H@Ycb7#gCJcSGjixn|I7MlD z-9}S0(eCx&&kiN|4x?(Zm{ZOJMORmx#3|xVCT$6)tOkX6mU4=97vovRDQAH~Jj*#H zVH4w7!6~PJLOdsP${(Dv5&j3Yv}Uv6v67^!aI^%MfRiD50{|0ll6C_J0C9dn_66A^ zn@6ltYHhxoS(~ni&EhMG6LPqdqaFU zn@gC3?q#O(V5Hj;8V}DnT4OTwwp1$6ovSs^`n_ zC)hKZ6Y8QXErymK&Qpr&DLj(-`4b7|qAQ#~Kr}c9*G0&Xtaf|)Y%}XPft8JkD{#2j zpytY_08{uCCj-^>e;d3G^|kHHPRf-PQSN=x7$_lEV?6yuo&3rdu&Pcx6tf@hN_ zZ_Xg{ch4A0W8uS{i*t2E{P|h)HSvGO2>qWo#i;`~Shdc=229v`X9Hk#DO~_tV_DNf z_DOxS#FOgb%;H+5qN876b}pcH`5jgO9L&EtCb_&cQ@Z`~@iJ+s303_fTiJBB_qIdw zwvVjx5_y1;LA$)f#z!v)iWA+cZP8iY0}I`!o`}<`aQ=AdXT8kS-x=+Y=Ovxh3B1^u zG=TO1NMqB&(|tJwqnIxc$tiACiaPTZ)`2!3EY7W7haA6yk-dm7z=9F+L=ed_lSIz> z2`BnWafTl00K}U2DjNY^!fGe)*QADR1(GZ)R;R_dI>KCxAB9tFQVpB^8Y=;D8{Ft4 zZ(Q2sb?C>v&NM5WH?3zM*~>GBElhe zXzgGs-SN#J>@r00sA~4ZkVYYL_0_QTX{5>B(J^B^z&k86K48a>qRK$qFiG=tuvACtW_dK|Ig=Gai|&NIX^l`X}X#mQR8ZPu$0h z$KJ-YJDK`T-hLVy9ZahfR<(ND+hOz;enA7A{aR}EtGx;pGD&Z|;V z!iR;cTzAi{`-G*WDEBj*S>4nc*3`-WX71@mQKTQkClN(wD$X zW2xi8o9@zU%NPG>@Pa9_on60V1$JCn&FgCD(8hywFj@O#FVdD zOJj_9w|+K(ixyl_>q+xODacjijBi*y#wYPlxcSVzN zh{9dGn-v|k;)+}LP89Cn{~0$`+-**8`Hqz>-_DFsT3Fd`_R{YYJVUhBI<7hu?$-HV z;3l1STsVq!8t!Jl^9NRV$LvOLZuYr9GWHQ2Hl6A&t06xru0iMDlVI)z>v&c|h-7tF z;1TeW3Hb*V7&pNdG7&3q`iNHl#3~SDqPcDKUU1Pw`v?8z=00mL>$j->j=t@ls@eBv z<|3(3ihN?F2#@PvO>{lHNWt6oGu4ZT#v!b{;$FKk7tA-`wYQy3cx9Oc?%E~@CC;t@Q76E^8mtoKU%Sf^0 z?GiFo1j{Wp6i1(Trt7LWE^RCdh zFTqRk0hu-CjtX!V@sk>H&w+uG$$Tnnzyp#)y~FFJ#g653DofN<%TUD}FXMX~lmt04 z@MFhR>3SV^sQ#El(=7D_i=3GhOLjAfUsR310*k3}VTO7!`WLT5eZ+6-WLb8mlm|42 zyjWm6z^<3aN|>34*bLEr2TfO6Ov7*?%85yaVkOFyg1ka(w-UX7fLBSScrohhpz0N) z<-@Itay?1BO+iK#^3n_EnnObT00hOhRM$H%&$?B4Tr%r=KQ5P`J%4F)IE(m8De_Y= zkRrXfzZc5*%j*#5r+8T)BR?+}VE`iT2_s7LLBs{AoU<^m0O`O)+{1|~+N>*I0Dyqu5#HvvF1T`k&mHRL2jJbMnTJwge@(4&jjtjk>t>J~OTGr^?u zT+QJEVT+tx|pqf9Us~IYCs~CTFC<)!Xl$Ih+LZFil7qtZ@@ zvaq{pu8hDMo@;xsa^yY>@k~B|O)xaU&Zt3zn-EibGTuXYO`ZjX)T_R?rMOQKCjivz zICHR-&3B^~^zxeTZHm05U&e%NrG$NOqlgiyN@1OPdrkg`g;xZo<530B9P(7I}_cM(YNxrb1XTu=6E1f(HxUn~gpcUF_9rAgETqKEf z_c_4D{aH0Txq$^)3^;iJ1ID{ZuYpAAQt>YF(K5md16=F0-KQZnEg-mLqEL(*~i9T;I zqj#3a%*=TN*LVC)0LekY+t~IUf1w$LQ&|K%l3xr|E!=z%8)yP~{sqX<%R`S0^f`#) zAxsBpN>C0m0g*E8{;2E*j>cCab_CUahIySMf>R7pHJCM&H5A`G^?>;hpF_O^RP#l| z?396UqWe0WZ`jou9k#DSUmzN@U7pCCnQ1fA$?4b75offlqZ;^My=dZF^Pn&hp|oysx37;iwW0wQhtNs6Gy0F z{ywB%+>X^xJ1l*q2joo|9$i%Unb zZ*suiyR&nL-7DZIGDMEj=yU08gmgCx0DB)a?CIsPqrG(A$Legr`s5gUBGnMNBr#PL zx(9N|+8$t_TKoFtxv4&f;qEcauj>(o0h^()5`=F>GC9Qt7#?cmuh0>`VBFu~Gcw_) z5Ps-*hG$xn@?}-*7wHJTA8>t6%8Ck?@6r+cqX`Vo)Pqe|*Xwk|07v{TxyaISfe(8Q zD!uO1_hgZq`b=V~>tj?G?fp6uIDN9$Y@l?^9}#JfFz$K@Qw^AQO{_$C^U8r`3p07#4W1pe zs2IgeH5>;V%|4!fle{t0=K%T~!yILwx*XR7l0)4KDjDJfSmoq%DP?8wU|p`pF&V5w zdPjr9L(P)g`fM3uD((_0j#Ujv%=DU_kseV+&ceZ!V|@;OFYq)ydPc>ocOVSMeOX>l zPdUW!gM4pO9Tv-B16^00B6AM+JPnd3EAOgk~ ze|9L3gF@b3T1F`*mVDh1i7VM*X14I0S-nI6y_@`s$97)s9$qi2`1?}@t1-Oay=)4kcUI!5?}nXLVyq-;8T zF!cxq75@Mb7APT*-7m_ni*KihP<)lU|miHiy3 zQ6bws$FVycGO#axpkCeuCbCXm+%J#!ljUBU8h^26h|`qD*CCuud0YucT zmAW{Kd}sH;-P5%|QleH+E$u>?IB|%mqsiBbB0!v}Dsj}YY@h^@h?G~P*@19C3CA&z zzTF`=FT31+#DH*b07na@pmT({s0^3Vc#Ne#l@M9D&I#;%dQ;xc^y0bhUp zwR7>Q21q_zfI3ZR_@1j_eBES?Y#3JIGjk9u!HG#$yX$J1Pn;srn5lVLp}9r!A_Z#1 zi3`}eG}XXzi?IL7a7Wj%VbMwA?8@3F#2Ik;Le@1sImk(#4eQE1z?18k=)8vPu@2Ps zp+gDcD%G1;EMns=QBEMluRI_+^a1sZp5~I~^1Dw1PJfClZ%J8cG5Z=tu!-wb;r<3@ zm#mVqV%(_X0nH)b2Qpbwe_2*>2;pTM_a?x|Mz(SYN@A!COVD(A(1t*J0HP0+o)fYg z-PUbU6H|N&(V_JmG=-wD&ZHo^xJ9)jvzd*9u0(}ZS8oUu$-!`o&jDwgXq+%B)qtIo zVT3!Pg$w_b`&g&Q&15wS-ObEwXBAB~0H>XF>eH`8Hp*1wumBFRIb7JZ z+}IRx8b*&ilA^wocJ=|V;vUtM&MVl^Nkb5;9EW=ODV%$J4)QJ_^~e@-cZeuh|4Tch z;{ua%)_d%{Wr158ma>E(S7IbnB;IMBe0jHeFMoVH@UO^6yJ~Bar&oV_= zsq)P=8QPVf1zfhza7)f+gE=6dWuFDdUwIHzmj4{qSBdh7K7Z)D5>(w7D;eMF>9{Yd zAe3ENkZxalW_xHhm)NQl@D+H>*OT+W2j1#)P{*xir~@cGX&<*$l_022z;u9 zs9VA!a9e;QN48UWSpmN9a(_vE?aj8}!55oBuhIwTgA~ppUQ=EAF&JoUT6$0LHJ?K+ zTx-k|9-GW7$t)_7_Z1M}Q2_Mrwc0Hw%ItMaJy^bFm6gC@Ao4Dd>7(6M)=nMz&zOl< z#=?A;IqTVXFiFm2efo!@64Cg@JF11rmoN?E8VUGwh|kDkGBWegly`g%a1($Ox9m() zAsV#dQWH?HI_tfUs8R=C#-P3Vg;n;2Y|+HO4<5>~?#Y5eGBh8xl(m;L_pS#8fjY!b z-oO?yJzUF=sPg+ z+diT7_KRSl^9_k5MH#pa2bVF)Wa#MaWJ1Ijs-g3*X0xvgHUqNkXq;RfyTA3H0jU?& z0xv(Am2?y?@s*Ok;TkhHt>hwga2RQir78~bmCr%lb}jpc_)BnTGEbchBEbIZn3ztq z4GV|LmAO=SJ)1sh1}5KVk`vAN#)f8#5Z|fl{uctY17)#t?8n+XKsms(Z-`zJCKntK z^eQ3!H!_iGAFr$&C;RZypq;ej9wvs6p0t)nmxiKniao00!JAkws;fkcvSDNL zvRxD6SfI28R}(_kM-3DyopFf0O6uppQ!pmkIp0=TUXUqc7khmUYQxQ}_foSmGD3QP z8|5?H&9|7+tyF0)qvMv}%5hXP8x&B3gja zJN4plALD)x6#cmpqmUIwJY(-Pa>X!CxegRsQKD~(%aFB+_&~n>a4$*dd6&_-7|JD_ z2?~9kyQp`6bHT38kUO~$Bqe?mvk=3%loLVGb+=NTD@#qf07=*d9F5Q*mr%BunE;;? zKO?^VppsoRg2GMWlYbJPl_2EOBFK$M53x( z;eD)+11h^sJ5h<2gZU3IdQ{n`obAeB0|dJ~RFkRq8?)y2-AwT|i%3#s?*jvk4qs^0 z$U=N5lPrh2?E%&+-q08q@r(z}ptZcAbQf{TLoVVd7cuE!MzlgBLt|a!*Fn}@VoCC7 z7x{`UVPv=Psz(?(5!@r)(hqx-wHWuujtr@#KWp{pK$ztNbP|EM>M@4E^|29v(#P4@ z@rOo50K^jvpi=Zyf5Pi>_2*o`v_BcGKh^r5#Rd9YdDGc(&%7WHd$i*7;fNClsJ^zg zvX&=>MvbM09bh?-M*uPQ5$9fY#R<{0jWu0_(jyUrwi|@#YIz{qk^U~HbmNrOPa1WI z?wm5|DMPUn;+3LkiPd-`YMH_Kg|@t_quthdbo9LESfEQ?f}&cc7Bt)tJOZ3{ zgp@X1+jTA;F-R$+?s=w+0O~P{bTG(rFbBTCtdPW{M`HdJju{<^+3;eRoH3D@@|VIe zV17( z_!j#F_zH^4^Dx)OSPs>Cn|*iG9V?1oZuPs}?NR{sq_^;_@NDGTM9zES6BAV7hrh!L zPc6wo77WfH$V3_C@J_HC+&k<5$|ynI|zREo0)Ia$+X!w7sHz}ni1zHrNk@*ODjb@pK&QJ&u;YSu?gA-yA; zP?C!onU8x}XxzRD4hk}yiU>0W8DemY9M$-#|6<*jR5IJNI>&M#R{=s_)TFX#ki8so zU}UMf6P^49s(I7LUeAH{2gze0I)~`(@QvgA*T;= z*FsLntlTLwLtU*)L#26hP1yBaa1PSFDGvw+kl`s6v$6khzZ4GIc7gFwBkqvCNz2sr_cPHm6Di08gy3~8zboxIRAc5 z7x{2CM^ALupkx=TWuiokancr2l*?k`b_j+(2q)qCuNNxn%ac~3MVC6DXJxcM`4_?nOEg(wOp%$b~7ewV<4qme7 zqaq70FU-%Fm0K=fw?gJYE>s|I^NLoBZy{-vuEimdlCq0tA-CHcfZZrUiUxO5fykj~bY__H<~_Qc@r_rLi1kIy%I ztM>anaq?UH8~*RS6Zg*h?7F@SU%g}H8HWXrd%a=7+j&nfTsZB`fxUhnv^Tf!nATnE zYL46SdG(XutgsRq7anr+{kI?f=laB{t5yegmA-!bf`ZB3va^pI%r5U*6Q-zvk-P zZFf%brS0xo9Y3LL!Pv^exhn@x`*Y+eSHIHfgbByL^3BZqKD>O|MXM8!yy^S2C08e% zAGf2+{m&#m-1(59E0)jccJ$WzgD#wS-=@rmZkSQtcGkRQ9~^Ml{r%Ir9QS^9Ra@SG zvDfeY@V&m*{kz?p{=|e+`p$dwrLzwA#~pdj3vnyX2=?!m0VTvi0rLMmt1{y}*N>U) z$-sZhWu+A;s90QI*SM&>t*##N2Y>tt`0F5GY0=p=b7@<3MoUY@(z2$~wwCs)w)U24 zYv2)O4rg&i)uQUQqlUFDsB0Zi3GA`+MhvKHY#T23gG^60WGe}dI-n3mj9T{EDma$$8s+eyDhsiqFOsbKKpssPy7wr&tk5=-OEUVKIWk*p% zcxm@zl+uCLUeUO1{a8JTJxmXFMWE>-gi7_nC95lSSXmQEwfw_u1ybdc5WOL_^^L|u zJ!GW~Yp!UiXlQjh;n;a3B@S8XbiY~3lekkZ+UmTOhm@ zrCn>I7Ga;_;T}5dzPjM_ZH^6C+q_Y{fB&kh>vtT!;q05HjXd?WP2c{x_PA$^4Una` zFa2-E=9k{SaL`{XN9~+6a^~&Ne_DF`h-D+T@Ay8imtzmE0Pc%@AA8?A@|1xM#r;N( zOc;I1*7}8aFRK2o-;^nb?!Ni(w>oe4Km6&|qS@syygaM5&uM2~a%!RH#yveIe-?PI z>qSGpSo_Av)wd_ipV#e}hfm-B>kH2ey=C)~Tfe?zd+wt5a-RG8n8$uUXY*eFrkyo2 zZ}|Pt`%7B4R6kU|D0}XuzxaONx4-wN;+m>wcD;Pn1F%UPu|q~h?`p3UQ@%UyE)Zj#0C&j zFkMWfvt>zJT|>2!D~Y>Y#0AwA^Bu90n2NzcoXO67tgmjYZCgMBGJ(NtQa@HoU1L>K zLvux2sHVQ6wv|9D0U~__qe8X-LK8ZnwfaP2{uvZZG`j>}>(W-JQmRGPa4-n86JSZf zj5rfSs=lwGwU*J&<%~&ntqrzWPAAD*0iXzW0L*Pmo2wfunChg-B&+QU&97*yP~5V+ z#-LJEFE5c~l}qqYHuENgZ}TeYl(jYMa!VMr^vxuvNJ)+0!$ zXy%krcQDF{oZ`7N*_fz6dozY#b*KgZ!{jF3m25_r)n3sW!XPp2e;Z`o%~r6czOHsb zTL{C%CFAT($uwofWZs^uHk-Oxy`8xgnqOVnUJJ|61p81S9h^{`vY3sqn927foBgPt z1J;0H?dXwOe5qO&G_}C@u)qH!1}JuX1BVb}OS?$0-+WW0X%g<;3l5?DW*? zlVh*FwauBSwM=h6J(*1B^TZzkacIDt&Fhd`{28dkBpvh=<2^j!!JqLfmGS=5rr*U# zPWkm2)A3dxDxsmGr7cuh(biVovQ)WQtcr&{mrVK2Vt>HO83y-@_oyD^fA_DP1bQkA zH~G@BDj__9Yz%R7YjsOqMSZBTy`d70gpsxB6^05_Ev>4r4plX^H^Qb;d6(_rHtD2l zX>=I5=2bHQt)BDiTB{aRwA5CI8tNMB8rmB|i<|1(;Qlg>^IkLEYaO8A_(sHF*!p_1 zxqq=o3qFjo@jtwgY<6PLz$m7+ta;N|bSp5wdU0JtiAoBccMM+*;wlO zPBNWU7fC^DA{$G3_&6rh{f{Qv|4Iu=N8DoWX+0K4iM;OyjJjx}gGH+gQt>o{y3#^F?I9dXbQm z|7AXUB8`hb_G6~zKvgwHd{a$LYc<9ead-a2V8nV}?WaFAhQL_!3arX2+L~HIP3>*X z?e?e9WzAbZW7fP=(CV(OxmH8?BeDdV(J!S zE)e-Mkm-x=*QGGPfnTzQ9;ks+3pX&HC<nj@Z`6l9J-!WsI z)=<~lD!;wT;j3$_ZeYmW-zS?5#DGRtyQEG1krmYmtBnSfRy{u?l`SnN75mekWJ+MQ zI#Fxe8ylpQ1l6yqaNW*qMy>pON_+|I!m&UT$^}+z^_!vnBSOVb}8~o zi8ADOHa#!nl>UF1x>zY%u(Q}R0`>r=y?C)xFwud(%mlP({4_OIHdVCDhplhGJgIJp z^n0EF-+`#K{1FERt;^%wQ^lSz=6`kg;{WomvWSwAe@OKQHS*t98>aq|29uJEbmw%~ zIx#3%i3Q4kdE4Y{9Tdc`?4luwDfn90KbF`zYQ|YR)P3Ws9lD37$QwD0SeL9 z)K*c?5G6?r5p0FEf&^!%P(6AFQ^<$6k~Jv2uv?Q;_%~jQ3M+72Dnp5SEIh+Yd$kj< zl8sp6EKR6Nxt&>+f(q0U0eY+p0|m6ChKeOj0Ta5Vm^F@#fgm?#b9aUjH5G8oo2#o~ zLZ~{sdYC%<4`hUAd#2C|z!Fu>?HJ^685m+xZ^LQ@ZA3$5U876>6@6JtL~Rr?-TQMf zHX=gI;scqOG}yN0YApE>Iu5A`$ZEB2V2ZJHoj6j~p8@v_N-SHQFi4_m1c)<}|sBF*!0sKlO zbQ>SmAfn8f5Y`}~^qR;Tgip4#=CBj+pPAq%0iy6HMNFD1G0WsqDav%aXOdZ+iH8DK zhMsQP!8frJ?fRRq9t9Dc;DS9dDF;}OktpShErCjWxIX8l%elEFfM2Pi(xaIlDs;tR z776h~ra_3K;A|7+$teuT967=6`raD4~FNiX+fQ2tQlOpFgHB`4DGGNSQbs<~I zYzFp68Mn_h{KP>M};%*~F!H-vq2y-MKo>$~Tt6{^s5h_?wBwM~B;c9B#?y6!Q__ zIV@(Kv7aoR#|l3w7_z<{N)HF*3)k`{*=dapB!O2F0e$*Ip>CBx;~9R-5a^<=IoBk)T$Ol$z_1K zO|+!-Kni&Q8iW^(SX-&4VsWl zz$v-CUD`7e_R6*(g}uZm=zu7fZVwtA&?2)zZo^^QxQ_feGuXyI88qASi)EyN?O#M) zcSPBkk5YhGqM{88xp-OCB?0_OjWj)Nsw%$2upmmwGeHWwiSIe(@MnV*;SoP@O6qe# z8cJ3Wen+UHvbCum0cj>U;dxV})m;zl`li}i*=sU~hj|OH0jx6!#j=1kY#5&|+>G-7 zmO*5Cp*?yDVujkK-_PV*exyUSS2xPF#EJlZrGhG73YtKd4AcckIE@l1>|nv$(&C%e^mg# zviY?igf*Wi$sdL_pD0g&qKAhyP?x*7ZhmzWwryIf5w~&~IZEEC|0w7gh(hI$I6Yv^ z8soe6bj00^n6L7xO^!EYsE zM>~xE1n4^9Q)M|3=k5Py_GUV?Pn4OT8dDt&zawhd;ymS)cKL>td=`4)ya0Y>pFh2uY3poG znfF~-Zxc`M_ePIG_BK)WfTCRs)!Rh5_6J5ehx1hZXu4Uf=9C_LnD%8KleF(Z(V;2J z?8hK=2O*@!n!4IhMKd$4>wgNG{h0FuR;RGgc(jd}Fj?Y4l_vExlVo|}lf&J(Fo0jF z%Zq+C^|k!X6|Jo&HMMZSx&JXuHOm*Ib+$ECHPwd}SGTB5dE<0!`ESrHU)J((tF{#S zU%7DM_90@y5?P8^uRM=$c^MPod8`lMSGMQs-^>WGkOW}`FcnLpU|RoR zm^7JVr9q(u6|D=Hw2glT&4ygp`nt-N3dGp7Uc$g%?l&JC^Nnqo&!PfHhRF7~JMLd=(fa!7N%a;!5=;Ud;=Ufr~2x_>~IH_p%jWlD*Z9H4*$@ zf^_kj(5lsYF;-uQ?(4KP-JmKoj`6$=9({v}WnoQOkF0bf@>$EQ-Nl{of~c@d6U~YP zu2p+wsKG6Hq~ELr%z))>m!Cm4(>_F2G_ALq3;dotUPRTTcotu4;w#XlSUzT8L0<(@bbs zej12yLuaPDP7A>9%-)8Ig-yu!BVb7vvnOb|fOU;7U`kg83_@aiV;!7b73(HxzXPN# ztkp@@x`Sfx>&B$HfMLZpb!R|I(lr~dEz;wL7Ywh5yQ}khu(Yn*1ESm?nSk4o5V29M z2`}LyZ~QuNTM5>a0a3iFM~8_1%E zcLl5=wEl|zZLsH9l!#$O5!m0C8{x}%0U>k~cK*?V`|*Di7wDgR`lq4qzeRej$Ae^- zCWMVb^IMu4<>*B&aBE$a{0~#{S_U0bP&H%XFrc)IU~Pu%01&v zo{7~3UzobKc6?zgD_YccZXLd1BxTQp6tiKMM%dbFd|cXG$X6$t1ROC2{x!)MI@$Dr zkYQA!j5yNNM0A0zC(0>D847Hp%w7uN$VA<;CT!2uGvI)uSvpUO4TK#<-CVG}fKi5@ z42M%m2WFVs!KSPHY#2x!M6+WP1RR>lO6p=NgG9-y_Lhn&L|+NpJBzDL*C!e>CEKXY z>g@CZws4{dO~^?xX~Hja4X5Rr)>)lpC=LsjhUREO_5zBNsp`iXqQA!O2~pABwg6!> zCwHDr_2Z_dc!oI4B2P{A!@?J@u|>o@AU`;b=~AeORkO+( zBt+eGHdw-?Nd{a>rll1WFlm&Y?yhueb$yM?#HAIbnDq3*pgfHck!BuUgeVHiBNei~3I%G%6psH$YQ4m1c*uFE^AVY>d0X+aXm^VsTc3($LSc+pM4Xo=rm9Zw2 z1g*n5v}oFP>3^m1ijr0z)?TMPQ5KXNez~kPs~a*_nviGRTvy+OBWbX;(%yIg#jk91 z(X12-6j|NfXdIUchxeVGLQzU9xwfULy*X4>U58zxS|-#phvjVsY!pnlbknHdcYvYO zhz`a%zd@MC=Q2#tmZOgm5$KU)O`f6(rx4|%<5+@Te?8ye{i5^hmV_$iw^qt@`%qO4 zKmPOlycBw@OdK1u#)NGncI0-uKPGhjFJ28T@_>S0*+&f(EH5+( z=B2*A)Xpg-$WSB}D6auV2-y$ne4YwRg(`9Pp6XufnT+bDCEmbWQHEpGJ z%P>+1w4>VS*$UP+w-%{05BYM>gFwI4Li%z(D?%n$qfeq=7KNt~yrdK^<#w z{!$!(flp){qI(yn&}~toS~?H*S}APXimjsbRMY?dqaCeqr((FdU+^E)R@5s0;X77W zcvfvyWh!O6HVC@1N6p5wvMeZEshY^CC$f*HB1I>d+y>-E~Te*{2&7ee589+}H{u3s*+&bR#Mu)1`2R zm5uwwr>4-|W@2&BvQ%hpxHU1{MQ~fc7^20Jpgd%~l?g_8xn`;p7FiMmK#tO5R8rYKYnpaS z-lV)oAKiM;u)AJ8dee1fi~D}?%ponG{LuK{mDe2h)Hh$BmHz0=`@Wled9UQNPniDx z=`YM&cuDIGxl?yM-*9wd>5||@H3eTa7jOAw@~ypJqO{?8DO@IP8MrI~E<6-e>57 z(4}K0+&b~ao|`w0d9UE3euo#|c>SUuFK+5`zzZLIx3zZb&Hh85ver(1F=Jl$*LJ;V z6-+q1_epb3f1~*Qd5`3N9(VrT6M{<~ownBBzH((zW$_&!KYR7$ffbJ(pTGCEE2g(^ zJK*eu=2>TK{Orizp4z_nwA_YAw{%^w`}={DavumiJ1MUIUu$o>@w4^|FUdS-Me>p< z%gSFpws`c}SFQQ5Pxa3F+Mg1?@!s>rtE2m$aM|RW&cET$Vdrja`1FVGKOHdYr4P>> z@a3ppAH4DF`0w|xEY3b;)#}SeAJg@#Oa54p`APSO?r%Bsj8`uxx?{y#)?eoqck5kz zP0C$AC%!l6-#1RZ`+?h5?Hv5!{X?$pJL<+YmlWOgkG}VVXDi1Rcy_|7V?>$`yPR`!hV?e9#sP-*;R;FArI(<#)+kaLq-ZuEBlRrE@?c(9R zFD~A9PWOAxyy(sa&EA{#WNtrb)`o{}`DOY!12(N#^V{~)BQN@K{1umc5_t5IpS(+l zZ5ek)`+bKzv+JjZTMqf@YJEPF-|s;lgbnPZ-;H*}h?Q7i_xroU;4w?DXO#vu{18@Y{8(Urt>3=lJ{2z3GER z?~iGje%cl9Ju-RAsB?e*^o5J=8?t1^@;?R~ch0@X4?KRs+QXa1mTcQGV)wU|YrYx$ z=JfwAJoD?xvtJqV{}}rccqqT`f9o*zeP0R{T128n%NT>nFwA1FskE1p_EM=Vp+!X{ zlt@WQ+O#j)P^l==E~#kWSNzX2%YE()pWpZI_4@rj-&f~-&b{~Cd(S=hoO7Rfxz6nU z(RVNIM{jl7XtJPo&pLxVi%T}s><5n>KA_Rk&vO&I@AcO{CL25sc(@z*zgU+dXC9XS zYR$<9!$xh_V~xl?J-7TzN0sKsDlg;x3qyvnGgI<>-Co~Q?=+@7KgBt_e$Tm!mxcxo z8kqQGMoqu0!$XZ`u6ed)*{?HU7rfT~IANEYm%aW<;?;sz|F{o^c-uS9>Qu;RcCgks zGAwSwntHlp?y|urj*ODG-giXsWlq-KH2PX?BcHa+#3uTSqL`ms44<6e_~vAj&92#k?fj)hSNT0&3{Z;OZ)^DC-Hp5Hd!61z88YaT-i6=k z(W|oQnTties+UfJs^0Mc|JTt~>+b$DTcfjMt@EWznxksDwxzW{Ubjzl$a$KzE<|H) zWlWDF3$E3SX@9?T$LOavzA@QhQ_lT-wQgI9oq1h0CFN{*u)FP-!acG&~U4TF+9dRguLx@|{W>pIGd^Tn@I zY?C#s7jKO?#%wt8$$OcpOIgFVz`SjD4t@A|)25;6NwQ!h}a{@BC! zDB7N=v~bh!CBp;X^>eZ-o7CHKR4dcVXy4<+O zS#i;B#LVY8YM-X8iR7en)Hxw}d+ZZNTkl-!v2U1-&Lg`})rGMKn{u;XIx!!i-$j%!sDP!|yjGgiFW#P@%H}A)(uHK{_ z_u(*Wk2;l+XfdL0LaE$rn}c&a1Ke&g_l;lH`+(t!?`skmPPupd!!`};$b0ks!)C?n zZ~nb>c>i1Q;i0+ez`AGScJ_MNnY(LvOVrpm?l(J`8QCXhopQ+w3~*bjcf~efi>^`M zae7zg%&mMDGj`}&TdP5>ceW|Tr~O%4*n3BTcAqbbdY=~hpC6dJjcZt9!)$s>d2({7 zj+v+KJod>+r}SLc?zTKxpMCN5>km71T^>Ha+o$Z}<+%$o-BwJz7?&t$j$j--Qj+QA zHC4f+cg&*C9qYz@qfEW`@00EE#LFi11+Ft+-z!qT^rY$d)4%IJoxKonI*Vrg%6jM9 ztqmzJ77kJwee}N1-Kn!Yyl?*CEsvnBJ2Ci;tAg${Q>CQK>*r19Klpja+u-ByS&xC{H1rvT@bTJv$ezv>G>0Yx_L2hMg0APn|bc+(+&6z4(B|KjU|Q?m7o<&`s8@ zp#**TqJMQ;T+}v|mt*#{&-EFt{I5@PuVbu(bLFF>Yp?VFX8m+=%ssTghp8>+zWwUz z={TvGW>jD&^GmuifYw?j2u} zqrp+z8)1Df|Jm}V_i6c&kKeAnz;mrpm{btq+8%8`y7yxTYLefk6=|jeEzGm#?6r(o zG4i(AC)=;hqb&Ct7V3K>j9PT=&sHaeBgvz#^`;G5dv0FhtYDQ5ZPk;jhP0gTxnkKG zv)YBpTy-5K#VfVLJ-Z>r5*YR92GC*zkk=}8vKE19hzoC7& zIPJu|A6i;F*2FM=U&_f{;;+4V+&jmGdD~)--5oV5=`c6W;D&1rb%*l&qo1{(4tA;7 z$KIOp@#vG2*WwF(jw#IjGO)$yW7z(ig9Swen`|%5DLZC#hPCQl^Wl+6y=}D&r?dwo zP7G{noa2?gd~ZL~pWfb|QWDlx+113DRSsx39-Z(jFwOj{QA?qsd;J34;6IN>y)B+_ z=Y&rPYrjTNkHjF#Ubha#WWT7p!;k6ok5KP-MP+vTLH*8f%graxFCS~m&R-VuG|wrG z9cz8jaP+GdCBL*eIjJ9aHtIy`u5i&f@~xui{!HqSPkuLb(m!_gU#;(R?Z;DkiF+z- z$(Be}mGhhD&!(8F?^HjrM&sPh@iCQ6JW)5h@@yep`TMWtu)FY#^?)GveOa#Lrze;cIkDDT;5V)*;|shs6+ zb}D4_jX!L+VcHb+HG`JyyJhos$+X{2^+{Fl&e@gOuThMTt5Z1QY$-P;nx)5lGm5IP zx2@^JinV7;6{Ggu7+`!T_29Utld`FMCQctdbXxe$$Q_jE`d4l#(*l3%P5sN_8vIjF z+Wz~><2PC*btW5wo;bx)JwF6>+I&8<%q+Q2C-?Ewhx}FOznH;SJk(DHd<+%wgE%jop0}0+@yr1 z%a3<&Zm}$8$y=AkDQ3>pE*rHs^ynx}DkW%3;pF8*z-~7vUm1l1Z#&aCY zZ0E>ze9cxYYnwagc5n6IZ71~ejki?XGTmj7w#{mo`hbNq%y0A`lyzVKNUUOCgW)b4 zC+v9W`N^|1IR5$g1sWT*dN_q{&)TA(q&EL9??FhbdynO#I-Y3v8|Yb(lxvk&)r-Pa z7!b5=;uW87du$$DHXA&mIj8CE#}Q*$pFXMh;usG3d#SqwbAG#pg}ao$kl)O6{w}^lt#_@~t&)F3j&Z5@~lnXxC{Y1+6cRb2fO^M>ZC#4jfaODIY(IzU+Nm@hh{5 zzP<&ly3(98mU*KZTaOGqZq$Bo)w0vHU@v%27^48qX{keUG!pmvT^miTO z)q1sYs}iT%^;L3v^y^B`hY&O7(x15R$*9=-hC^GDyT?{qx% zPTlotM&XXeM*h`**3UP34k%N+7a6*}B;w$rm|ptJXJ0vbWAX3V#g) z>fUloN}u1^<&@Xh_tA_pXRgA>{h{u&`i{LF=3q0(xiQLF`}yzwKhi5~RQUn+PN(Ln z>m(+ROTO(>LAUruFHYN`l~-z86QrzP_Ib|bL!&LUpG7Z?A2IXH!TPfum-`jjC;mB8 zvglKnLq0mXyH}*j8lsdtzF)!|w?lrYin(xP-d3-(P z!-=I~_o9#AC>c+=aK*lf=G~t^XYQ^L!B@xjidnBB53h9c&N*qo7^^k)=fvl`6ANo@ zKe*`e>~(mR?z&5_*0h)H(ntt9!Efu6nD6v<%e;;2c_}$toX)<#a_GbEL9-@X{GNB} z!$1GTxeaDPjS6xm^CBBIz13;Vo-WujEjF$5pnkjF=VPYrRZrS7=ucjpRJGWB>8zDk zj)q21VtDItiv?3P%l{I|!xMO1;Gb3PojoD$#qe+CgDW~z>NoSu=NZoTxD=)I;!wr+ zNwLp2PG&W)%n}k;8~JMrQq9hq_QcT|GN~e9qoa zom0I=IDedH=IM}{+cw47JWSzydH8yN^-;~c7S~6}m+Kt!Zp@f-gcm)+e!1XWOG{_P z+~6x`PL1Dw??u6>2kI7KI+YQv(T6-1Z{v*N-Pqvvy5RNdpfhXEJiFCaw528Hvx&i? z&;QE%?Rw!-sc`1*s*d{wBmCcMk@|3aFE}-BzN@$XrkuqdmJIHQjF~SVue>(l^f=oKzxg z-(GiK?W~~8e)E|9AuTR^^rjCsrLD;eeOr1hmVcLTB-f{M#i8Np&9}eJI#GLxr=YJj z`()XTm`rw@&ViEB6ubMa{en(8Jv*rS&hpFZpJghoZk)HjgO9zq`I7n|IE(wXcjvCc z;f~v8X8%x^JGI2%tjX5uckv&>`g`jha5gA&b2`l2nEp3!%Ur*$-}^X>SDv(d);vns z`^H(zVym4L8ttz2Ie)o{IeG1nyCo-mZGyH}nCYx9UDT-&6GOedwbbO;%tdEa7HHa^ zus`qI5~F8!aP?&Brj8H3-aCHH$*637__nmEfd6l_!rIu2JNTCSdJmWuHN9tMng5g! z)kjO#?F|amj5fIOwCV44zsa|Tm{zTK+Vi>8LSbT-e(I=Soq`^B7T0I9pID^M@A06Y zRYmZgMHI`6(*tzXEu<$CMhPd6^}msBk6sJ}GDLtU?|Z{Hhl2i`pw;&Nb+AJuk2*?z`^zl+#+7AqXy z#4Da&R#H3b0xuwb4)dj>W2$jG<^E28>v=EaVkX{SKe43fkVW>RgFn~Q=hVMEK4SXp z8N)YO|Jk$5z0rTtx9!efnbi2NDU0(5hq8V(CeAm{nSEzLPS9BeMt{9cQA-uqp6j(# z5F2hOpE=?6MbA3l{okI(IjztPp4PvYPsot+#o-luHkhAz8a-*Rjzfy+lF3Hwd3RrL z_5Snwaj93??2kuzjd`~s1G!WFXmTzI9`-01pnHA0l9r>Md^;fs=iGYy)#ppFLGLxo=`60cgZJ*UKEM7o2S4BLU2;&n`Rl#! znkjP|R|Y!v8XK@(?)#L}Er%!hrmvV5^kwdatfUP}it~+oZq8}fs45sfWb}Z+yS|?J z)HHfgq+RlBUx%~XZX6iblKFbsOS4^lHaLur4Ws-r8@+DHlGl#?4sWQ*KdX{G)0w@Nn{E2F^v$W{FBxYZeEPJRzG}?S zMJrePFqH;=x>Ec2o@UnjhC173%dHD?3p#&vF5jXgzpA~{`EbIf^OMJB=5A5r?mN`d z5Vj)s!thg0SEK5R_N8lFdw3q+eM`bLh8l zz^?ZfJ^L=OtIB*d>$;NuiiVXKVx{f6&Z&^iV zcT0w67yUV2>7IZ50`Fq$t45j|Yop_(Cq*`)IstvQyg4~K_t`FIC1%d_r86UKoN|>b z10%26^iw?=)k7h0mV<$1@^f2`Qs0+mXN#J4J@9VqXjA^#>u|YC!TKEyF|GaLJah|p zwalUhy*^TFKFzDAUSQSs3rQ{Cwie%-$kDNESmt6l?exA!U)~%!?ee>-Xx`@4@$~2v zwXqfDwo@|>Zr^#p^Wdtu;Ne>~-nh|wzok8U#+mY*{VHmW5BLttiH|O#3}7E> z_A1aA*A(?_{OpVVkakMHCQ!;%U>6m&9;7+sC6dHugT+t z%G#|%9K26GU2L@^G;V)Q;t#df?-@gVZfIxb#r87)SC+o?7xy-0%%9q4#?QRwJ+(Fq zJURWx?#SDXcW6aXv+eeLu27j3nzP#UV~6d-mm8L_Sd))A33Q9!rJf#kI?r;{gZIOq z>OD+3W2$%4XBM^R!Q-^c`!-iL>aF`x#(4TmSCD>mf9-&UigRxN^7!+a8h!D6gHpoB zysC>cPNnCbjdq~kv&fC_H7&NPnpHLO@8Q7YTqn)qyi~`eUphNe{#-lueRm>LHNz)8 zDW)c@tY)-ldhdtZ?=@Ghaw@90S6g7Rz{<*vf7)Tf1mpG3 z?B$$){Xf};>{&cyyF$yM<^v~f`rMm6B=V~7pEqO8cI2@~91dOd`RW7JjprV({hLCw zvD;^^wB^WSAN!pjtS)ATeqKIAt&+JgaF$*G-!`Q>rk~Z=nO5GJ)vbS572QuuPSz=L zvdD<7UU1QOobwFkMaAZex3t0*yFOfZH)LMW?nrh4Z>-;X>XNMG2KF`Wj^1t=`zC4) zk?-MDGWF~P1?7VtJzr-Jof|W^to+7K+rfj=o=mU}adM1i>C#@6olUa&^RGJ7JvCv5 z9xZa`i?2EFl}(d2UHMpB8&|!o}0~4rQ5MGI<%9WBz`H<3s}oLGIDV=aQ4A3~3pd*kEnt z^kR>re@CLb1Lt;z+1+x3j-?YWKgo%SNqDvChplqHdY<#)dvWc&xSr?jCjPSi^0xSc z`uMBE>sG0!@V6>zbo{6oJ1ybk(D3J6or5L)-iEJMWK5V{^P)sIWC`u-a!X!zM7UzD z$FWzpRrxO-(r53?9Xs}H{rqe%i&@G~wis09_AW5~cE4(#`LHK<23v1EJ>*XB3dTG3 z*gh3oX!CTBFWq?S$c*h1|2{2h^SRie&FeFL#-x6Xt3&20zA`p>!|;!_%D2!B-9BbW z>HWa_W@fK49BiMc9xk{%+{(1}*zAzFRSSIGbBD$M%gswVeS7AUyyaKQ-&8oyElyB= zZ+KI%aPYbQ3HxRqobIaURQUFap30B5*ORR7*wzg{UVX{I&Nn{6VD(tn^UBFNS+^E! z>(|(e)vNIOg8Z)|mh&5itK44wc#&zT@%PRNPt;9~GAHp}{_Z(6&D{Layr#<9mhY|cVP0r#i34zS_V5iOsc%` zSXIs);Re`D0H(=&R1i!IoA%T!-yhRGq8Zo1RmlPala z)|$GGl0RvvwXbfSn46Z!`2)-WvU&X6vFWyQgx$`%HH+cwTSh)V`)rp`H<{ zKmS{PpOV)r9<5c?I^Z>B?EE_+2dd?Kiq(>bSY1%tc(AiNBdgidF8`IE1524TPB3EO zq1eruKjY87?Oc7P^>@S0_ah6V>pK)rFAlagJEEDJ`}uZlYpeP`t z&o+(RYm_}J+NAjWzwZu-+Rk4meT}&MBleKzhNb7Pl#Z6)`rh}~OQ$?7?WE)3=bGI+ z=6C=8IFTIu#Xvr>8Jn?G=kEtDR%HP!E zn4!;|+R$$o5*lJIM>XnAE7J8-&plPEe9N%1twCjUZfK$Tln-2wS^fw3F3a!C*f{LU z^7ayoeXZq#tm_q8Gv(|i711@HZqJh&(ROu0(3qK5586cDaLTvi4i8$MFkqkeM?dRx z(<}d($GYWv%@Oo#&s*JLbfRBwZOpFEyGA>&IWk(_xKG>0;KZy2M>l0yx|IH9E?8$P z|7_0q$HBkuEvz?9N`CtEE%%mLZ9$)q=XcfiT$LYo|-q>8ztG<6A+084XytBUE*VX5`Tgr~=__rUc zzt%7Ro2l`cw)NWi->z35T{czgJ2|kP=kAvk(K`L+G-x;) zst2|;8SkxIFyU8t@Q;YKfw%8GC@e}#_6hj-N1or@C-cVINV)NWOM`5_Z&>tX@Unex zE>1XgV8^G!#%<{qhP`O}pO4(}*y>#0HExVomk!M|EjfN5OFd#~-eI*>9&7h5P1J}P zrnkq?V?>mV@}eOtvsEfbjfp%M|JLw}!6C16e^%VMwkh$`{?Is8pI-)XyD0+)pAYss zV`QWDTi5XzZ{aPIx$SD(=$+h92iw&r?|t~FY~Ob8*f=$QP>`#W?&|I8K00qr%{B)Q zDC=Au^E>VvkG|#csr^lDDh|)BE@T|^8}-#D`Co2i0eg2Tch;K)zTkDInwf38j=J@^1{Y95*KD2&jv1O?LGeyj!&XxaGej?*DjPz~W1*i~83NHvHSkslQs(i`Mq`{qv=oV(?b= zY}>5x0;iSXoR1AA_J6{iSKWGhFYHv0`88)UY_1fajbr%_-mmmKVQ8RX6OZD^IePq& z?ZTL)nx~vRR%Y6t%O6;GdW6n!@3|h;0mmqNAD@qF56)p}D$76ju8!Sw%CmaqnBm1I z8qY?m{0_f8yTskWfB6!D=I``Prr%W5i)_6f4Y+mWXVo;Vri_xXoGjZ7<1KsEy}eue z`pWvc1%2EG&pOfLPpnSe?w85EF5hukN;60>P`I)0nt#Bu=Jn$eqdw*N@LH`8>st4I z;kQwzMlXG^P4u7X)Hn4@!m?MLX4rm9H#aG`7O|+VZvL#Zv+S?ee~qDM58Ph#$4w=# z$C%4wS1;LaR8%$7c;gD4vLQECmCW1QFzCnnkb+tHAMW4!vEb88`FBkZG+ue6A7}J9 zxvIwvxmB+wugtslZF+W$lEK7FEy0;XYaP`u={mpvur%lSyBAFf*R-1dEu7;X*~_AF z{aFQvhxXwYXPaE*L~bkJefj<5v5pTu4|}aJ&Z|Pn6rgm42#| zK6q~pE3`+}^WeVU>OPs9417N7<7 zw9J^bJ9GmlRW2Ahc}nH-eAh$YUJnVZ(bucLvF6==$171mO6psq$FFH>S^w(QSGuh}5-{ns+@^HOkx4~@9?uMIbj}`KS?zd0Zu^gxy=uywtlnQ|7F^zZeQ{ZG z()DW3y&LO`-WDC)Q>OZ@PmuLH-L^-CtIE=zz1l;KEz1wuR603(>55fF0?p4?XiKMa ze^&M08htP=I^xRl2SXy*SBEfK7c&0T%{lb&OIR68Z^T_~>Z|6z>XXHtl*sowWI3WhdAA_Jr(`l zS=C%^o4B@L{UFuhuliez8gx9#%Fl33z1_C2oYlih9vY?3WO~gntv$cwuBm@^@-jWs z?cR!$Hs2b*I%kqKeC%RppU)3oh4DU&tEH2!=)x3Y@-TZ0yV4K~`e`of(wcN5d-Jtj^n*5)3Tl#+>t z9g5S7da%6We(C4S53t-khTW{aq)JhKAKj>2^`$WYG0RzI6umNuH^5c*rIoG=+r6)t&lO-9&H=B zFZX(XBQ@%V#M_HKW~ny#y=X$@$B7TH<$~KCe=``fy(EUH02U zm#2@l42(-Xyk^TS-<~g5#Odj7n!9nq<1AuA)6Zle@nq;Kq{bYFAygP&4P?X8zd0KP@Kl_X;LgkL__} zk>k784uxpDTKShRV(ym3WN}SHXfCDq=ldCV*wW?CRNSN9oHhP_z>{yi8Zuf9@-$wA z*WN6s$ZPfY)oiWY^Ka}rgP1j)Y3E<8HS`>|ZKHwPnCzlC1>U!UhHpv!8O~^&=ULu3 zdI7!t_tQ_df1RTImFBHcwwwCl+wF;}NvY-Q6F=Sk%x(VuPIZ^#x6MHlYUgDinl|)q z?1{7G9^+CLL{%N#pK@RMy;a0>v(_HFc_(h_G`4p<9&HHj#)Of1&z$HtJ#rQ_I-Md!Go{z4R`8X_*Ai+XXY zR_EO``!@?p3k)_FXx)gInV66l{>ALWIsf`Z8fS6y>nq6>$NRTbUg|JS&1>?^wZt!gYh5 z&J3|mtM)Cf9iuQkvopJ&e#z)4x8KUCYQFX9H(IvZ%wFNxZQ(@fH7kwp}dy5Ok=0v{Si} z+!jyg=!CQ}ixjr!X>8D_A2&Xtv5()8NQX?`^?9z-rjI?<7ND@>d9}gEBc}5d*uF*i zUmnf6I;gTXyHPOfR)*)u0r}x?-CSyZpDF&G70fC+{^n-kwf$$+7pt<}O_#lB*ruG4 zxi0AF;c8J$d^5Bh&QDL-reeK2AF_xzo*VcKwfe?dyAFMb%G#Y__BGmZH8- zTtxEtd%A&5$<8Z}G>z4nJMwJp^3{{HbL>_XzIk-A$FtVrlTpXL%lZBM4K^4~E3SMV zS!nX2(7NIH=Y+Chsb-0ji{!?xJ!IsTmU(z-joxZKUw-YtM|LR(lh*Vt-rp2E>v?4S zpGo`fZo56W%KGu70Z}KuA01sEH2&DrW38VAjZAPai^XrS`!iALU z5u0@uE0?m`FLLJo^BSPPRo-mlT-6EN?%jGaW}vfGhUNyHHHWPmJM$jJ`1ilH|GI_B zi4}z>buPRZXww%h%W7cbA$f-c{{OPfuL#75Y1kdbIqJ zw?}EUO56U0HdA&|86zKa42~FjUVK(EF)z?2+^qTdg_|z1!K-@nH6n6@r)Uk^X|n0K zPv^P5ib;NxPY(TVW5|#E7I-M~Xoh#2{lT;xddH1@r(OPpw^WDLIpk=m%zwTzD!O8q zN{ZRl_oLt5{nK}kA>>AgcZ0+yyBa5LZf=JUWQsp8avnYc*7cY45&$UqunI+wsC;Jz z_z67uOqQ3xi^gLJpO{VnP!aqedWdH!0fsO+3_&1=&12KqEI}}X!)3Aq5Kk-cNWMBk zF_!T7(?SJ-v@jN%<|SY;NOW%~orm9K6#kKDIvZN>Wzf7B94YiT9Nj}A8%K-(%~^`= z60r49oL~5e@G2o}>F)dAjsg->5iefGSbD2H?G#(#R<;h~x z{iHakumB`)2PlRT4i=NgW5JKU2Y4}QSvCqUE425z6I-BGnZF z0zFnUzz_oQ|8_>uy8uN$#VPzbM?z^bT~mSg;F2e?6r?2@3q}sVK<~|Du)N55^93-{ zlCGq2I)^S`gz`8v)N%sgh#%1<{z%=>+5Y~t055@yt0$9(uqOeFbb~q&z<}0?`4n(N zXn_d)4etO_x<7-QrZamrKaJ~$fJQU0S=5kxY>fD@h7dyhCY&!o&{rSCzuzcoUijrf z`0yj~gBApfszo$(Z!X|r?7}~alIXV@EkvY3Ai+$FNQ&@digK!ANX5Ium1ex^f7_&`-6cMgywEvlLk-zN~hVuSB!!Q)HGqY}}-iT*!4 z@`Gkh5=}|o5%lsn_qejX=T`WqQ}FYM&?Dj(+;TxOQVaU!L*Y*`0s@F~-)E7(eMmuz z+MnwqV2WmH5@>fes0=M?DwrS+&yzvp$^1$wu^U8;s(mJd=yc#h>QLi`aRpo+?0#5L zeMEpF0H^_w_@k%;fXDC`@RP&`U9Ym)i(bRw17s3MJI0BU^ZrtRB3#kufUHHhR7piV)B-B;hU4(X^@i1abu&S_s$z5}`B)lb}W*WJYZb z05q{`Tsn;f)`#iOM{Nwn0V+cI7?lfDblPhW)IbiHBse#afEfTm3tL;Yv zKr~PKJ}kB;j>MIy09%+82_~OdlmQGDC{w5}G}K-IL?X3uAZP}md;o=ps>5Y)g4qH# zpBKo7g@nPT08B?R5DR}Mm+*wpl7q#-V?u|eR#XzONInS#&V`sIgu{fxq+5m~z<`_! z4G9Cl{ZVfp1B9GD2}Hc|5$YG9(3tckC}I=Q`5X=dTam_dF=c8?kg}*@fI{*NBq+&# zlNxjwK+)NxDS^`2e5}#sfYFrbQWs%ZU>*fD7HNBS08UqeL(LNUAoe(TXyi6OgEy-# z5s90nXMjMv*O1T!vH!#ijm=^DFu_d{FUCKBMJKlIf8(rUu?}j8EP_8RP{5%hQKJEZ zCJar5M0NPOjszrH*W^?P?K3&hm4HH1Va%m@Gk9SFVl<#Qb_iGt8mI=fz7x>Mdh3hP z-6F5zts8f1#Y}(_aLnHJWQF!-Rx{B$*zD#JvQoUFr>f{ z07h=0I<~`6x>?p@Cr-@D_V$LJpjCVfxci7&lcP|5nJl5-KpyIEfsQ;64T3IS zmZZz5v=EzOT>=7YlNkWVoX|}{P4xgAvblx?jz;IfxlX!d45zb(_dzaR|B1#Vi3(_%Q}xa06|BMkv9{r|8N%$;Ch2imc(#Sd#3GS)KHbU68PafFNgs#r8oSnv|2W8E=zHz`!Tskav`$Ku5~f z!Nm~g0&49RE=HArNs&JQ8R<~e3Wvrecdg12tQBp%6$p)>MtTAY*;H-97hwjBVbFQf zZP9R)Dxh4Xyw?dpMqSYe1V@1*yLy%a1g#z|@Pi3|R`zt;1|V|AiOz6%# zl2hdbIAqqez2M?U3!uZLliY-`u1*naOA;3l?0-|Mcw%Y={L^XTQXT{n$a#Q!4u{4> z7XUPZxj0Hgf|6Pmn*f3otto*BIA9AT${|GFLfrPrL;f z+F+V+)Drd%ZquMD)SkvNtUYt#!7XF;We;#i;6PDFW7#u8799*|V?w*|M^UA*WbTtI zfQ*)>4wzUrp98Zad#%|9FfNAD3{cUArNG67=0zR>bwEUMH(f8d zAi*&}SOjmT4<1oy0~{I>Y%PS7iX&+($2y|zPuvH)k<|}JX(E)ABo<)M)M>&hxJuD|WpD+6Lxa;0;ba=SiZ`Z2^W~6p^a4mI)TRoD zy3EP~GFtYkz9BM#byi?xW#N&JX3ha?>KKJE zPtI;gb}SIl#0!aoNNbYPh3MvrIPL)rs(>tPe2-5acWq zMoSnJ?1v0$^JbnNk z6n_Z-(*5>gFalv*SSYF!=*T0~^kMoF;YpcBOjlvEtR=?Cj@}(WsK+K^5ZtaHbSIPYZE)d+y0<)BI!Ggw$; zKx!P2(dM9vykxlBqSdqr=-B)T9ap-)v=6-rFld*;E!xLdKzNb?bn;?Q3J`R#XyOoZ zpWej9P=lGCkXXS(;%!o0@n!oHXOk!*j=HO~2J4D0q0#PfHh@DDszat9!9{`G1rp~4 zFr+*^NRh$?19qk)vqbtjlL3h4U4!Pu^#l*bmq}-lkhK6oDxgAH0Nkwb;S~ZMX<8%L zg~-T)2ZKW{;3Cw)DPe;{6%2P8)Zxc~KsG|ni{Z)lkp}z%0NSs*0dPO{5(u+3MEC&` zY?7U!pMWVy8^__{oWX!X`$tW*@_5j1B!&+F)SR-gKZq6sH1Ys|x#9;36SlZ{NdgR7 zTAH4G9uL9}qGTG9vj@je16i~%!bp*duK+qyte*G~A>26*#7=PaJ_aC~M9FCb{o+B7 zNc-9eC^Tk$E|?%m=2}*sbs`q4GZZ%rw+CT8g3LCh0~UpZBv=UUK#Eb!LEdbq<5)d! z$n^X2gsF4c4r~M<8j!BYCFtLQf zXS_{y2@pT74U(`m3PCC_1`&}VV#?hPVj#egCD)gN%jhr+kSI2)6~gppialikc4J!( zAasuCNWwc^?i)D(BX>TZ7EGr>-mRN_>p1`-9qZsgsT;#{T%M6A;{h8*axlPuv7ncH zG8SX%1}qhmvB$yMq-5zFEE`a0)oPL`Sl(zO%>fL#*+>jNdFyeEF545P0F0bK5*R?T z4ggN>G;tD2;sVM~1GD;vXcOMk8Em1C}TZm&2Q5(Y2f!hF{j%4); zLTF*ay9v29Uje5r(I)&+di*!1CnKDRxzA>6vDznXI)lZ6NJy81)DKWdgE~yECsb(> z1qd>Wa3;Xe!qMmR{3WTfE@#y`K%(WUE3(x>BMhl14vjoJ4+9SEP9ru4YH#3dV9@!( zT(C^@wE#xpNo^64u*l$~VtI?-fI?%@OtrIxK}3bwipq=7OmdjJ$&_l;0s zL!1(p0Z#xh>ZUOfMMV*30go+vuU`vjI*dm^_a>`Cv{Ny|ZQ2#<6$XbV zlZ+0y10LNV`bgu2F*`bg2?;O4S!F>5h>WWo1>AikgVpk4KpdW^L6J5exd1}lH;@Jq z0$JqRIuB4ZY1$-Im~2NXZUGcpE`~BF8Hp-sm_F2LUJx9SxiUBb0{JMCtb=5C2)r09 zEK=-`OH-k-A^XTBgOdw@sv^;b0fS2y@E9zH(3%LGiFM?PhOiN!XrMCC!31;&f}X&k zhSE}p5>RK-XMKYA&j^Zv0t8+hb^uheLGc@n%Y;-Bd2TDO!xp^^n8<8NIU@sbu!Xc_ zqBaQ3AjFlVSVDls0;xlqh09=hV_iuCD5(w^sIV*wsiOpk>Oz|wHlN$gUFsg-keM=; z;QW{Y48qN#gE}AvjimkpG}_VzG&)#a;x;RGnhD2VSZPPpf<>&y`l`%g1jFX1SP@)}Vn#_x7_A_io(n`J39ky54}*vMJ4vqqI$G8gZyF?|yfCt5Iwo5M z^g!Hyk+zm?#+X$lXQUiOSU*W9Ow2&-FVsbFeV2GF{myRbN(bC z@M4MYrX$eKZ5Rj~KcOUHZ5@f3nT2hAh*uLbh#keE@dN0-n6N%Ouv1it2=`*dlx$po zJV}3R4=xmOS_{EViy_%gb z(1E~uHTnp)0u(uHCPw>n42v;9oes|zu2%uV01(;2uySnTwYh=d6)})=h6zhLiJc;v zl3WHLp_Z7G_6?jvkP-7!noG9alPK=XtfIoVj! z1*|c+p2FP`qxQOl83FK_MWy+m0Xi45~lZ1vrg&v7|U4;!ni$uu`#^VO&SE$2MBH}B; z>QYkFshijiR{_izzCRd7WF>5Cu)V1bbnys<5o-*Wa2r#Iq%9(rgJD|kU~TD$`y;%z zFu;moz~!}=HPH|QIWn`or4CzDM9;uef|6tSkMyc&yodEnB1~BRh_!h4e)qy;aZwGJ zFyU4f-sYkEkZ=;6?xgPQAK>#&>Q1tiu=bT3@p%WR&cQHo#O_(TM5EV${b0NYZHl0}4?3yueLJN?@ zTI0ak&w*$wIfC9Vu_dW5fw7rFQ!aFlNUX~%?7n4!VM77~h#Qi)c8Fwn^9GAN5Gz91 z2M`WVR`5;)zr`kzSck-TpcY&p3|3&hz4#7Whiari3_|~e9ZbZ6!199P{2|#v`>!$! z0s{+EeAx)^|o zC*uO4K|upzZ*~&S;926|DTJm)3BxY-Iu);&`YNB~LQLJ(FIsU~OGT2-FBSQ4`#HEqJOAgsfmsPbgI zk(gxh5ed&=q;2OlHF+|gfdNISQ%vG>O$F0)N9F(pYe#1iKEo9VQq4gNc-LkS8yTxyI^VK+Mwr0giXVz}k|kWibObqC#hR zGN551!F34+lf7^mBu@sRtt1R&z8GTkG*2eH9c02INs?{MV0oU@&NZ zJ|-V!VTibK*S?$z#=9-a*mT?N@u8Slhy{vrL4;UQMu^A-k`quIhRwWz1Py|_11m;g zwxEYZBNC=A=_az3m`HiK9)u?Xe-yN%q!?ksh-ZZ)k1;&EHW#tTQQ&GXN{`7}-BSY0 z@S!{#>_7a5q%uLC%(NMS<@AO(dctE==&8wG3f$nA)leiI73AR=cC4G}QJ793R}=ur zOMjYx4%(1*p(bNnf>;=$dpJ=PExf;CBDYP!X3&&4KZxigWEsPSJq4d#Xu&WJvzgdA zCajqh`yO1rC$WWzj7oqP1o1JRGtroSO^H1!!$W6sh-5oCBfaNhtzdUrAL)^9jKyr6 zp2+PK$E8GtZ=}SF^RSUxiJ*aOR+tZ@q=l|yDEN?c7GIdMC)v&{z|Mf~*%+Z+*{&?Y z*o;K2i3ZtiD+)`nWgrdjPWrH=BwY0brnc$JF!N*}@^1vh5iQJp3Ufo`(5hBq%L($7 z;s6O;oZ&GQMDhb!Y&@QFYz^5c1;Hhkr7m!OA_mu%L^1_%VdMzlN7j(X^C<~itTH$k z441I>zj1>woJs0`<6JS^!LNCs?djn1Ie=!c%N=(pKbQn_X85>dR)~ zLKp7Fd|m^D6h}5>#Lmgbc8sPsGZgNd;u1ZqahE;VIiW9w5`EAC!$uWiV^SbZ${{ZlK-{I_^c3FzCG`S53d(*CaVKg6<<6nKWO;yGh}53)Sf@QoFwJV9 zLPO{i28uX@ovl`45G|C+g(0HLBB4R))4jbEv&Gg(w#YS?WyhN9I4n;-$I=z^dGlFB z1*CMx9FAa$B%<_Cs3(;W(K&{>mOAip3$Cw#xF`}|i;;>%yaynvKhTsU^<~>Tega!z z8dw=LlugO2$`ffft#V9P>S747tHfW~AaY4KBeh1DP}%`(>Jm>#TMQtsln{A`ZBrvJ z#wne|t)dtw3i#l#cz|h1#KBh&g!S5DH&sfW_9<-Kx?&)Q0kw|sB8TuIQOiYuM3+>F zNHJ1MWZ-E`q)17`lI9adePSgQ0YpR6JyAJ1@szu)A=~ zvW4fo9ALz-JbzqA$s& zic7u;R_Y^RMc= zMiHTQ2Jz5K^pzuGfk^|n)MvszSzN?C1AS=>1m|d;asU)#O96|jY&3=2s!OL#E@6`) z#t>nDu+HMI-w=I~;-xkVdys2VKnaJ~!I1+NG1txt?24=><^p|o z15Le*okRMPFo4iN33y?F;!iRW`}HLt(LgP_BC(Xc==(^-n7YEa)HlMBox6hF4b8gZ zBzHwQz>8UUSFvlnWj8Ef20$4BM8PV_)e2mek`-an4Hvu^gZG{!!}4obET+4j!Lud8 z?qMvP>sZgsyJ-Vhh%g9TAkb)rR$^Ci^dAJGV-s22m4HG9M3Z=o zK=^qqW;n4|h2K&mv?aq${Uy}X)Z5rT*F{G@)Vc;T;R%x*z{JSGcknX;M?xqYd?f@_ zzKdHu94Jh&B3v!tP`B0bPLr}s>M$EkAuMMw%mET{2*{|=O$UnO!Ct__2cpCRiqbHk z&wZ><>X?^|5^#*hr|tS{eqV`sIKu zMjQhK;an1bR7d#Vh%&4ZQ)rL>YK{nCz}Ni93Y)dS)BsVzxpi^ zM5PLQp7jt*TPX23@WCXYh>3k4k$R&jd(&7%))P^yfr?aaB=fjM;=W2$ZTuKJEHy|I zOzamc)Mx1jGGZB2En!bfKmu}dG{7+>-h1(w!cqz?1uB#9J? zZvhfDM&nR%{}5DM!bMi4i5f+8;dxCp7Pjf$)V1>xprqEzSV0W_2w+sFrzw&O>Lxn7p8^PhnrmUD9zu+4!B&-y z@YE!3S8SHBJQ{1U2!QBfBnEo&ImCC*z?5P@(^nW!g-8k!uSv+Rrve=f9P*8#Ja33E z6uiM@7CdA+j@EdMO}CZ=4bOkzsWv7w7hq_h8WNZfJe9{lecoVGqALNx!+s7_Fc2k# zNGqj)B=0y9BzdqSphqhHy(FeGP2z2i0C=y};}NE*pOpQ76McokuH3S>!GO zo0yaR7F%D+!g-b>sdYG2O;~=;f)60TydeP--eDPiHGe)ly@#YM8_rn-`GP}KiHAp` zLQe$v{vK10GTiuy8c{@z|3G$;s;YodegOroFdd04L2Fu~ROUx)?vw?tLk7mkQH0-a zC6!8U1**GHrO$zhRGYxv1(<*&rUrkKq7HSFqTa-*6oKA7ihKzt zs|j2L?lT3>?t-D11g|f+(!~%rDaZ{RLKQ(=1rSd}V+j0;Sp-#qE3_glq80$Cc2@+D z?gsZ82GADjNWkSo#YZrc0d;ezrRRV{PMwZOAKe0%e8*-=Th!_91nU041Zomp?+&#G zP$IM?p+`Bu#U1#b`r+ zN%6VheA}dHg9c)J-=%4;Logcmx0KAmIA57G%?+n%|B>Pwg43d3aI5M6NMdTFAID^C1~6P1BefGdal58H40qMa`MWG_^sLHQW0Hpy)61|+)P!$%3= zduZe}z8gkrh;T-o+OdvPh`0?Oa^E2eV)70kqdNs903IH}H>gOmN(V+Z6SX3JR?FOJ z`M_XCSZnyBSai$46W#0NC^pj0XLoX`k-|ZI0;%X>gV^8ga?(o_#p}fUU3I}=$kL04 zE$i;eil7RFt+jvvbU9KNxRU|^AjWXz6i5tJh!IW+i8u!c$+d%`2FnS=$UyqYE09HF z0CDLG*^EQXMf#MS=F%RAWcV+E17)I>hzb=simkM!yA?p4A{_i|1qJfRrw9fO95@it zB2yH^_Wq7>OphMaB%WE~ouk2+V_{9oWg9+i?{2w`OADu{`TDHstPGa3 zlzaiF8cQpebRQ){(*S3LD90rJD2m{8%TcVmUqOhMx>z{8J-{iML~1B(fW-=8iV+oC z8A?QX0!B;*BGQUve~bNU}+(+wTx zchQoSKTwK)D^6DmXKm_{DEy8uZ+5k6eD2=v7K}`P*babOo7d0)ql1tk4H6%|o;x>W>1ck97 zA)2~X*xGZzB58WQuu24j1c6Zb0^e_7LB356aAIhN5oRWJai}M}qk*FZA+?Pa$SbR+ z5b4@gUJ9U)@2eq3$%<+R5DHj{9c1jPFBx)>i2~^$Yrzm84(SXPhY-Ai*qF>kisYx} z3YG8_X%+5E+N6WNP0ucn{U<)Zcta8fw>fJ(0{eN zy*pet?OIrLBd?ow^SZ;ib?u*>B_>ZF``!^$3loth(Qj`MiLGUTM4qoA@zhV~_`=}? zZ@kF3K$C0OxeeNJ2jHJB2w#SFBa>ProVsW$@|dD%c{4fwAyBZy4}|Y|K?tBoK@8Kj z#-@$}wV*trZWNKv0vY*2I@mXqq=S|AJ+M`#LBL>qqR+yUYfP4#S|aS|3*bcyS&sn0 z<5xDF37@VOme|PwP7K}E6W?f3P@*^uLyoh-Hk$C;PlTx!$|Ewc7}Cx5zmYUgh&Q3u zwd^pYP#1(uqG5qFuo-~pQYr)V!P~yj3j+#=4%-rfb%b2P7GaH7^~Q#7L<}9u>Ai%= z?nZU859UC02bb>g0ecLtO@0DPKoowU>zTR(ww!U4Fd;%Freyf3r-bu7ALrJ=Fyds( zDFrd`4git*v@oDB+k{~K9kG>*_XcWy!sS4gSln8`A)|x03y(kuGmd~S0f^ew!`dYZ z0)#O^1f})GW&?eHOeUJ14IpGZq544dk+J~M7vzXnI8wj#A)<;zP%jBJrq~ZN3Sg>5 z5aKN<^oDp+3}|B2Us4b=L;(Z(j0|Gnz_%m_1{iOkK=`T)F;xC<23`obM~I<+f2;+_ zUy6GzdESk1n*oQEjua#b{Ug{1fFTt@VpAjz(zEb_m;8he**tRq=Cu=dYuL=)e4Y+! z420pOeH$+!bPnW_9$%-cAzP81K|yKt%8`Q z?26H}(HHuN4dO$#Iu%glq9iIJh0pRuo0~LWGVIiPVe_hkv8Adh`53sUwg@0%R3V^{ z>!wR=Rd`{+5qLuJxt}nBjgT|p=f#i;)Wn^k!H+|b!u;K_*omSvO>GD^VpUoo+y&v0 zAjZ5E0Fod8)dix(sAa}b?24mCJa%V@P8*5Ocn<(-qP-$Vp@_ccFDLqeIKnw6IjB#C zs-X|VoCJ!bO8u#Vn7kDyQ(;PoM?~RpxFJLz05B4L7>$^tTShlrmq66ehj z;2i*v)+fWL5QR1Z>!l)x2YvveZ2_7jq(GsFKAM1$UjiAmss?3k@ZlBWJ3Sa=$Vhz3 zMDGSLaypQa1jufS%Soh_{1QOO5mO85ZlXqx!kY>5B?=F*X0`$uHKP*LWg!2LweJA0 zs@U2NLJCc}$CLv^(?|jW_TGE<+S|2X>$P9IUVHDo z_g=0I{ogfv?=@@hv(J(5|Gqq1fxPdUvZk+DGxHg6UQ;FK(zq(5cil~xcM@~MDmn!q z7qXrkqxuiP;7WvdDylHS4%h27#bWvQ4wA|)fr72SH+A|maD&kFd-(hJJ$+=isUjtG zT{WhaIsJ)5j*-a65_uCyP;2zt64`c|2#wl4r{EwU ztj6TD>N2`7hS6t%TJsxj>7>~Oqa#WMn!sVVDgo{TFbG(GBop%}kU$-ZEGiLoZ8BX} z3S5YZ8{BQA-9T-UYG)eTJtyfAf$C3XtQ*V_HMP(`NK;V>zf}=O4^y3<05J&1RHr|B`p9NwLUBKU#Yh*BKyjM- z5=Q*rSxf{{c+)D9w+tb63AG1xSh+pvs=dgS}aT|k1Wg)*R7yXm-?P&CIXN+rDN#b5)# zK-#n{Ms5NUq~7S45mg~%sLe6500_6a-z9P-5H4XV6PC%V6!Cm6ky;>J{|Yhg;g-pW z27eM1qe1ifBlLw^U94T;q~%xE?e=P7EBxwS8lq)TI%)K~w92MJCA{-^$$THY17M&e zfH(^Q7qS5CHCKQI=5`PNq5-Dt0ScEhRaHiA62h7?&q%UbWWI=InAEA8oAG&`cnvr_ zXgf1Xafkxf%z2M>Qa(dcx|hjldyTEG%B4dA)$_Wd6sj44};DY z|7|kq7%E{XoKppNcD$%nh7*2pIgbW%&-|Ww+jvpZ{*tGzRB-D69m)_fUbR5%Fgdsx z0uH89P5Untdd#n?!kU^>yWt|+3{-yIw5b9+Tw*<^V~}96&j9rd(wASgV7$Oq?keI9`fCb-}BGGR>ERz(wogpl0!+vT|8&J1!Q4WHGF|GU@jM<-tZ3 zqiPhx@tKpq^lzdGIcB)PrK=V%N(qg*IMs@YY`Lsk7lL4uN0m3UD$1+3urA0Kqe(#3 z!%P)F4aA_YRt4VKDR|gp#yl+Fr}S;GEmCPx6Ft<7$r>|OgTWQlDXE01hjs}W{~oxF zWM(N&d6_wtpd8yMBI#3%`#LHr=p`W2j|raJBoN2)HtBQtr}evll~17cciKsCsXK16vM-ph=MDeVea)wnGr~kP5_C+DD($N zoIk>a(Ke)^O9ct8xKnYhC@ugIjHAF{wc=IR1-M2itoUz3j7mC77GW$}Cd0r0ZLzRb}9D8tH` z*&#YY<(>5q3Ah$8C!lYzjbwBwg7j-oBzf7okMF3y$gTX~B8}ES?Q2@9HH1&)ZMbde44Cjl(MNwk0VjcrEZ%M|G|9*s+gBAu)&{o5jEe{#>^SbNNA{)jO%__tF z3nf$luqwc$g|00yVP1HQFhutfg^;H<$7IUvozkQ#Ye>4u6vnJ$MQ#$_^=eJ|KKKN{ zpo=jJNJeHHClFc;GIB4Fplc?JfkmbqFX~=Clq;}1fCU`~tpcsoxD#x6N_iR-@INK& zQjX14T7jBsPZTYJt{pRrXKTd>1oU1;8^3|hodDhagY8OlA8Z~7KIev$gvQpV@URyg zJS}Yt$_gw#S!^k75D4I|xDq^W;B9ewWotz$PU&eqFiozg9J%mMJ5}UL^R;7<`80{> z4wJ7#P7|sR9y8pB&~ zmWgBrX7I8V2gcT_S@^#hUHxDn9% zo08t*LeX3jbh$tt5Ffk*V9=gbFLBOMaAsX3s<(rnE2d4wI-bKAcCl?D8ji;n`4vde z@|9bHm)>!II2t*NzI=(Swz%RQk0R6iLYA?`Wg@e#IR!N6dj2XrjIp#n(rEh5t3?GEOa;fXftd#v+#H$j z(?7mO*gvTFm`*pbNajJ;i9slXiM0WTIq3RaOe_zWdDRWMm{=h&bJv@4F|kNs<_kCH zVonsy=6~g4P7=&NZq3ES$pVi3)Z240aUO-4BkvT<{u!DdEvR?jCF)EjRhClCzjIP$ zF@1VZPO2=Y1JR3drOix$ET};b2aSl>LClPU}Ah!=8F zWoZq4DJNBy){QUcq{`Bo`D#w8EUmX*%SEMALR?ziZ{(!P(kgf>Csmf#g>UDi%F>$n zZceH!ttZ~gNtLD5@Ig+hEUlkE%t@7{b;8Fvsj{?2e43LgOY06y)U$Ukbl{0gtLlrK zR9RXdeVLOgOKZQcb5dn#_5U^}RhHHj-{qvr(%R*RoK#s_FZ`I3Dobmx|K_C1(#rcK zCsmf#8NcSD(n&flt!;kKNtLB_|Js~XSy~JJ%t@7{^%WLx*=yDWSz3qn%t@7{wLu~$ zRhHKE$(&SKTGO4JR9RYYxH+k^v^ue!kzE6HwvkKAEzC)krFDK$PO2=e@qKbqWobRu zHz!q=)}H-yQe|oVG$1Ecmez5Da#Ce!ZMI%csw}PB*3U_mrB$&(F6ty%S|4nflPXJV z%|+)easj{?o+AJqkmezB_vrz+MJJ;9gBLtN^ig@MXQDwgF1ee|X zW4JP7V>Zvtl{x#zUvO#tFYN;FJ+jfVc^Cb7IevG)%=SiGRmR>wY&_l~of1{2A{s>Io{|VItPgkU zT<&mX8@uB#xU!Lr9xuY(Ko*+6Jwxuu=5ke5$4(RSt$CQPOXG6p*S%DIgThQ*Galy6<+M@X@GWi@r!(}QC`wb|UO44!|raju-4pErWKWc-+S z>p0G`Idvj!+wUN%Sf~`teOcCuR zRI%%(Rl)haY#O}qZQeKDNmT4m`P9*^_!<1y!RNEup(=n!%4m>+wPecz02Ha=J%?{1p?s=JRHvuE>YK zU&2QY1rnH~b(KVV?3T~_Cwh)V4h9kwo-UWjfMSulSrRz{NU$m7wu%J&0)RbP`k*qB zs~B&Q*@PZHRg`aUT(=A7!x-8oCHeM{&LF%Zg@cQz-M$+QE_JKLxdYDq3t-!O%Ze*z zn0JP~oBV=eVshuSe0$5m;NZ+4>D!zUFivhF?B1oK;uO-8LNUob2PDpY|3&ojpgD}!NqXz1(&C8Mc#8u-n+jwB87X-$mh*pT`f!N10a0khS{U19eA`N zPR){;;F}HsT|xox;!Daepag!F%539fmtGQ%Ewi=Kcq7PqZ@0ubP6suLo0b_l(4>O; zUOcl}=IvT=Sp%k(3od&EaL{$LMPboXrZOr1D`(h$HI6MT^b>^aEhrHo|H%oVvLn${ z0+0{P(658uTce!c>r|6U>OSCK%?<0eVy(C(-ft zQLTBUCgd%4BOn4WF`f1GPvSrGK!z29)lF$^=xiz$s#pwtP~sHA!d_V6Ie9^eH2G^ z0c7|dr0g=}6Us8qav_8M>wfCP0)K(mcG-NlyEl4&B!2Zkq4yq(cey!tdwW5gN7saT zBvP3p3FOWsCG>=z2$!l}%RKtl(HA-Y%t{ zcgKVeUkuphXHM~gFudhH0!Fuir$vjaF&?q}6(F#8T5m6Y3|ZvrZ`~cXS!L&9Cc!ig zo4IOOK<{dj{5a_B(V%g!0aw}Cl2P!14JhK`w#w@$9`s(qLgfXPzQ>!qGu&ePSbM3=r>bJmzjLt3>iMu z;NX%C@9b(>!pE;XNa&#-^uS2v!TEWCf33#fE%GD&#dV>tj5<^<^@oVzv=>gHV497& zK21dUW|ye2o?}wI`JrMu+M7>=`ZMl137^*IFj4Zo=D_C@KK|Z1m^qh&!!z4HHI>tA z>86oXaMcL&mK<(ds&X)_qYK8eknz4pSVbv*vCmt3af>|xB(93d(m7R_)7gqh_uJ#d zw?Bc^wI-`ejEHWU(U0Nb3p}K17O?0A7bSeofa65^ z`_LM#f*u3+m1lVmffp?4-T5MbvyT@6^rlGsMYTBz!14V31fhO-AO%mQG2ws{Ma@-6 zNOdtRiwrv_iC)lyv3z0p#7uacfY&=&NITT)&{OU~XFlK*TYpU7NTv;5$AhUGjXtji zk2^)>J&c?O%!l_oRYo!&=PK}6fWV#8Y&6QH36b$UwE>(80ykde^;klFgVRO$Xi~5? z;f8y zuCoCc4*o`FVU1$I!4S4#m~c z6VQd28l6B}dCyQ>13f&6nZc~zlmx)d$VI+X~;1K|Aou%-|FNxvg<)Tg{ zqv#<(gKlz*8DMWFA^D{03sMyR5s=V0hHFnhu2YfkxY>US(6JS0wWAYac1P+NxTwl*n;F zg5>IbB%-eop{@(Dj-$iXbCO>=Z@$(5Ujb0`VCyFfb$Df7Th0sGWrms){g5%Z!-|KS&Wi6A%{CT zs!M0#O&scQ4oUcA=LTW@Q$c^k@VS74EYY})YodcOmpPl?D7wn6;BL#vEkFWkoj|r3 z+2tlHW3s|0WFy)C4~RjvGK(B0T2+K_QV$m|L>Yg?9>}>?*)!GK#q`5Ll4rLHyT*z zcL;IfOlKP8C}?<0{es>icmV&gUEqkz$LWC=zj-Zw^`K}I=Ax@07+!w(Pbr$G@Hos5 z{+(|xy2AMbSc6M(RFF)v!L(=Sy>=a^v9hst1xeRuo3`>E$ZUSa$v|`c-`NQteda#V zPtwYYksI%~9h9ck7$bW>AY^8t2W8|Q)$!v9js!?QN&%wvUp!YC6Cur~@7s^AuoAW5iq_Q&RuK zDC+PhMFDzp=yCp$@Zp|M2{-}!0(vk8mjmR98G%yr9SJ6DaE2c404!Sew5S0CBB`VM zH92GVfXO{8R;N|CI>KIzA0w%+GZ|a(jEDht8{FtaH!fY5@bNvK6`Ixl8_M(^7c=&H zUNkdzDpotQjfI8@i5F~pQc3fKh!FoLP@X)R;RDB(aAu|iOZ4z2?4~cuESkMYkwvQE z5lMZE$)fv`h@k+Jm+ImgvaRI-_bJzdVrMaEpO}$Q1!F?Z%Q6qu#W2hX^dq1_9?TOa zEO*Q+LVezbn8{S=^1`5Z8~mzRHjs73*8rBV*j=U_TF;oucYF(qxC~L>X|jDALSqxT z88tk8+R$isbo_)o@O_cFuZd=sRfL|4V39AR2-%l2(oC_887HGT`gLJn&MrewR&YF9 zzOgPcW9i8amU(F1WXM^OWg6dHmw3j}lOQb9<1HcMZDV?c%;iS6pQgryGIRlic(A3H z2{IHH2&FR0X}7oY^M=#liy!lam)xoE2$vKy{fr8mn_44T zo${`je*Sfo;X-@|!Xvz_=BafM4wdF{@BNR2!^JxJeIXoMO^v2P+Ix?SM zm&q*D{XY<9kG~WR#X9^$A)37|?J(NJ8ZOeuAr{Cml$pT9C=vhe?ppdo;`9z>1RAFe$Ce+^6cVPZ(;F8 z-w5$-vSyvrPRXDlB~^oHyEQ6=xwR-H0@?$boWHF)WkIg*pKR=34gA-&pGBNxsD6sffYB;au)p8 za@@ZOV2htEp!^7MN}g^3;s`#Hoc!sv@PT0L?qBTYliPqs^dL2)z+d2;d(NNquvI{c=>{Jl20`QKb}pMuh$8i>UVQ&w#*YO)H2zY92U|) znG}Bl5u4(QV)J73PYEBr!?kHr%JY=U1LngkHMRr1bm5(+d1bK8F!md;AklgjstY5_ z3oN1>aw#aQz;-L+oAi=NGA>>MeHLi2VpK`osz~cemTfN-sHRIV{A&)G@iiE1+cHJ( zzdRdOdlvUiursi!8Z?dLsu2~_$z&Sk+M}P% zlc|!)q>ua^NKm?}09|lZT{#)kaRq5W*|vW|SO##dW@SYgT~5e^OF`h4ZWir9GN=*4 zp1lygJxmEKu-<@#U6+Rh%q?u5XM%O-IZx6x%oe57;S+%!7U|Z;MJa>Oy-fD!4zyK; zwuDUks;CK%nv zD6H>>3F|+i@QT1}JgNZ9hmQu#-9_IT*t&4xDy~xVu7DH7f}ytYsX}w}F&jfUwBtbv z+{;v7L!vD)a?`W8;Q{RQ9Z!u7R$UC%;2DaGP}>_qD8VA+iEpe-3=~%1|PkC4ENK7D5O8OhBdZ1cb|Ucu@HQJg#33b_C6ShJBqQ zLsD;HQZRo@kx`6!<^l69l0JGhP&*=`b&?^R(X}BImr#=P2cwlEg={~1RWUV>T(8Il zB+R@BOip_e9nm~=LmbYZGMqvR2fNaA5!O6GnmbA=(oFtwK__O~9L!Z-1MLSd&&^Ew0@sfh^Sbq7 z1h5&3UV`~ua3*KlfZ#)o@)bJf&zbmF{NkyYr!arZNrEr5M&VOZycg-1{s-v6IVlxO zr+4X?{>EfM7wW;LYv^@47QjUOAzEYwc7bhcAHDmq?T?#*Up+i@N1?i*R&^NTGTyJ_ z0B280*bS8ILSdyGu#*rPXk()F8+zeddLM~nn6k57ZKy$(Tue9TrhL~NW+!(^*i(&t zz0-f@enhxEqH_;6`O=^TQxoN2Hg6`dVqr$d-OS?&*dv6Xo@c7#uwBLA>00NFc}brz zbT=_kPMXVc^8oqi_dvNLUSA}Ro=d5%#SAty)!40A6v&2gbj(moXj@+_Lu|rBf$H5& z2Aru0yEC$0Y>@MDaAo(T&;K5LZXQEo`DNvFHzP~jRFcRWLRAbu@b|XK5w;vbUp!6J z;KAMkz6$Q2=rSw)dz|f1aHk{>i6xseW#av1V-bi3sOya~=9h}3ZV(^b%xRUdvehSj zk+&hjE)ZEn=7mL;O&21Y#K%GhKKwT{IjSvZB&;LO#@Xe(4vocLg&4mFHzHmPcebKQ zqXE@nx`L?}3-61SDR1+QiWfHN!~tRWcEp6RZCN63lvnzBYRmW#D8+Q8W}N&xkl!+p zH)aSJb<4ez(UB8Q$IY@GgK;AdnIWQLdM{JvlV@8Sh(>3NU;D`2KzO#-ueb&ci(WT` zabPNoIe;M3coMB-6@D=(x3@J~zjXbmn*z2XbnK zoZR_Oc`-VuQuHatdTw)$9-tK7*X3~FD(9~6Xb1#V*r<(mIoWy>FRVL^@&;82<&mkP zBk3b|0bx@GZXmbFesisiIYWfWTTq}i)g_#)@4*Y!1bPbWqx{Yw8OcI2y3?fQx@r-! zIpRd8lc>tcv$CB@pI%ZUdYVF_;XRIUhkHFJJn4e}7zHN0+oX(MY0@yUR#Y02K$v;J zeE4+>FOm@^N zG)ueGRGc`3)zSKE#RQ-aH;LF~cTrIa;fPdL8Hj`7lk)cvq~Lak>1EUEyhjX}_Z)b< zP%89~5LedXQkpy)*f)zsVCxynkTB~6OO{}Iv*+K$u-#`~>CCbcOfGnu!+Ty?!qLZi zxlD8|LC}}&tQXZUzqkT@Cu7$& zh{EjaUC~9mdy$pKkVY|+D*{dyyVN`^NX}${rEh|Yas-%k)I1|g4iFIioOPgMa{a3-; zwOLe)zQpqq>zxo6#C`V?MKeT_eCOFnQGN?PPaPfqHRL?CY0y7p4MCr4O7on(MSXLq z0l|Ki2hhidwFtalD74VL`(W^bp-3gFYip{+Xp|wQFEo+6t)gF2)wNZ)Q6~?W58nis zds4Tyq$&mTGLCyQVRV~VITR9@s>Kp?EFH9A(zhV-02Q2vkyKxIF2Tid=r?bInM&0xzz<-$a; z9B+is+nQ?PCdkKKayhSX^IYa=H6Tk)T0BSZ4E@q|d%! zAJK&R3bvn5CSJKpsJ@>d!qAHcck&RPALMsyL@hIx!#S7`+rx$J``SK5AB@^VM^el< z>3JW3t8Xw_>A#<-I{je8s>7jPc?#!-q|dw-%%Em#+8ts9>woHp0=vMU`~C3H?%(Wi zHGcI--VXcQx@%78u+$a@37Zfu;>T6^#o-g_M@UA}>sjqFNg<(cF?pGUoCZr|y)7n^ zw;Bq1kY}u)fVC z^&5x=!y8Sc@oOKs_%P8I^z{$mh_RE2GY%KE#i=cuQ;MUHBA^jR*eFyVdUK6TyEH7| zvVFl@b)=}wz35r?`Iz{d83f1W9wo}kp(Fb8q3;HuL1t7D#_HL)FKSL|TFsoX-nD1m z49%0$_ZS6y0vS7cN*T<7?@9WsJ&qQv_1Qe>9k(@!m{VM1tNr802&0F)z&8X43rDsP z^aCbQ^~Z|F;4Td0f%=43LWD(`gv#SY2znkT!3Oa#7Mw7nR22G0|)AjLqDn*tK&t^8iTf#DUw}ZzM z*}iqPb1=Ts{*oE(?Y7`nC)-MI+y{6-ii+rGOp(3?0j`@W*b{sv>BAML*zO6BO_o(p zt*oZ|3Yc&w2*K{P*)3;e!Kp$$SiY6iR%61z@P~kT&>l#sGl%|*=i!yH$lPV&X<{5K zpq3n*{$Z;`oVW1>dD(^zJxZq!f4EtCQ5k?_0&Bw-a%2{H1w;mgTvht^#Efz8Bg_a+& z;SW7W@HZr10CS^VMQQE)%Ievuv$RSJb$Vw(BFKX=g^F9Du>$klk`@87l^Jmmx zCjEBO$NmN^u!g8a$+S7e0=!NNCg(@cKY<40pUN+%okR|H?ztk^p&3aO+b6uMWIFF)Cpbc~e# z#DsqK`L=DUqDpgc7;cX>#t!jG(q~<9ffz&FY8;v@Gbe+X@W+KBn7+IXiwRZ8bE)DY z(R}(@8okj(4b9GtE#?KGzck7HF9HZAP)fw(J=T^7mQOtL;`o@*xG(`hsWQ{OL7HSZ?gBA4P zra@48Ohuv4g@pdzg!%#aY>X-L&$m_7&6!HJi|>;@>+H)!>GdfoE=~pe+lXKAF1y^u zuKG}S8PD7IACku@gRiNa(L5(uS@PmZ=$}nqj=ngS}-$h%UE7I;M+ zTSO(E(*aY?0fmpSX}UNv8c6ag5lDgzFd_zhwMauR3}a=rGyS)GIf_njf}MK3eNsrj z0wfr&^cZ-BvCM>PY`A))L@orvD@v42RV}9`5B3hFoiPuD6sS91es>=K<#3 z-{}xHXUKhD2o9y^b)ttDB|}*bBuKmJ<6l{7-32&=55eOaS|~%P{io;xlD_?n<^BN5 z{i?11UU$dcW%>0sbOoQ0X{9Bw(w9yX4~BAe^F(z*rLjob^afk*`dJi8LixxQK!S|v z=OnWEjUvJ3%%y2yGfT~!sT!uyz?`=N%%EfSeb{P?XP45GVz!UvgxLVJV-ipC?ylQH~0%g_T=9)k8me_0}fBy#lqRvmhF+$~>NX-$SB97!VYHJoosA1$PkDc2DQ=?8T1=LzlS(#pKK^Xk+9 zT^Ewk!;LbU|09&q3+WicIvB2e&ZduwUWhnjGdXWYIpZ=pXFnDRXM857?(qm`LMEr* z6A{kDOwN;0&ZJDv(N9LgnViWfeJaA)A(PYN=@4fOG!)b$*5TbzPK=({JQE2gM$eO; zjc{W0{6mxzqvso*i-Z%S=eFks$GmZAY7p7&xc%J^PGD^^^SRLD%*@y0O>JBLf*1ml zbE@jf(ALH)A5|}kamU=TV&rM7KRn&80WoOw3eO5JfUiwvyJtB)*+jnmOCs_<)ur%) z!5IW{lrauYB1yOxk7(Uw&_rFXi+Ulag7lh(@Q& zX>K>8g05wqqI|~SS8Z>qlGuL6Y{#N60p)4aCU82XlNSq8#@&)`X`8mN0!zx0h=ph2 zYhrt<2nXQcqm=S|4&fAnnSxnT{6%PbHaC%g+x;&oY_#48hpxmI($Iv&>RHyz|=v&WDeL zz)k|jhLn8Vv@fuC1g6)Z1Ubaf?}+A?53d4&9Sn>^TraE(l%01dhBdGjY+h}D4vPk_ zwzEj;DwE~5ckPVZoc5`LZ@57o0m7#$oatmptcA6l@xkwj68G?GiSH%x;o($JgDjao zgFMvDx-?Z&w#b@YUxwuHpfu^g0NFD0)YjRHGb1crXYx?{zDT1kA2VT2YW~=9nAg`S zpK%2k+=hCUk2Q?RRTCuV4{&(J;eeAGH(uiNJ`k}u<>P>d;_g zlOYt8PnwXLKWS_@6ICCJ_U{_XKGQtQG{>UWk5DKC86A{9Q_&P^T z-hTi9j_TZi?uBUJP^fEFo}z>4S$cn}ZsB0`5>wxH`Bdo9DKDK~n<70gQ9gc3CQdbp z@sBd`i4x!OGZDU9ZI<7p01n^;5UdJ4LMR3A#}GnEnEZKW2%$6_FA3|QW3h#~7NY;Z zIK6!3pX0spV@L5H!QSOYZqgPrVZy!vdB`9Oj>oqk;+R{;t7N<9`XCLG$IKzOrY z{nq-GEqIC|)s=4RYVS<7FIm!+?(Rx;n=Yd*uSedGKiV?YhbdJxa!E^jefKuQn%jc^ z`M+3)Kf0E+cS1`3G0GmA$d(p;gld3seDj}dN>rcL`lYF+bR!a9-`(8amIo5PWhlEZ ze-X<$-C4g+s-rXA)g>60{3^zKml)mY)($~f_?y+9Dp$*nBD}3XJ~>WqdNGHc#e!~^FIYglm6P5bcOQtBp5so zVup;T3(L?i?loC#Tcz$cYz;x8|qV)+H|C>9b8u$R(Gej8AksfWjztI zhOSRn4OlOKDZ@Sq=El<%KB^-H37blNvP7$4i$TRYm@(rw*>xJD(}=BxSzS!qqTHn%Nl7Y%TzljN>OpQY5`kt=)+@tyw*^(}e8@R3T+cX9AN==z)`o#`~vBJiDb()Ll>$LV@< z4&ie!xN`Ijl2PB0s&8r(89D?f?Ah3TzEYzzGZf8W=-;F4_HZ-~eW7YV9LK0=~dmG^(j=R73n+>@R6cl9+0&CR#Dfo72VzG&Qw=NI^85#4-d5MMW2E8#`5zA z3FJ(Pd<7(^K`PPO-Xx>_VX#oATi=oH?1uJ4xUa02=uQOszU9iHVdYZ8F?Q_&|PXOWJcC(CJNcVN7m1=2k+*?qN-9nUO0{sxWaF(C5rLAiEdYSmk zMp`j_qeS){WmTcLG+WzOv~|a}^{HEl(!5it5hHVzR@NahBLaQ5=_!L5R) zSgxV0uHQ!x)`H+7sq~}P3wkZiYNTD!%kt%-=c~gW$lbv!qyKOC4MbJ zR!(zU2ikdk9zcAg$|J^!s_Nqn0`DH5i8l&-(FBW|=EEU>2qe^e7};;4D5RpU`ju&F z9?jldnOQeavhr$hIG0d(HyVUp3LH5($*1D=qe^X!2r9gj7nLQm&E;e}mtf^lc?_vX2`7QP6gPv9R zNIj!>6C+lBOWRVy@cT#cAKL})`r*YbFG`NA!ml3lF!CJ`R!Dwx z6V^kFy){*&BiTs(nLw{DN!kr8p5u6`T#`n!&roRHG&{r4FDcbOqu+~}u*3wYUon&4 zqhxT@&%L7Xkph#`BiUu-Tp&Sq^$Swws2L)&+-$tqGn!59Ownv!RceEgD@=EjIa!No zHQ_Mz>#6~3_d`U8s#im2x*iJbZf?aK<#mORvUS2NG0qhF9KTqYwDas_9=n|t`6Mp` zBB*W4t%huLW=g~%eF6?oQhEoKxqexv>_ASPV`n@19i_%Z8p&T;5JuUj>%vj!_f!K6 zD7T9Ul+)gtURqy~mfOy$M@M%gX+%;@zO-a4VqMy?Xx6yOU5kV@n6`F8rG zlK$w=Xu|^0W#pU8GxifO-absMLP6vqOh4E&7K&gKtHa==MG{;S249h2aupeMM7XE! zE)tYn9YHJikm#BS+H0{z^>gS-IJFl539_P}m&mxkSwwLOFWV=hgLxc8F5#b)>dgyk zZvxMr5bo!{>TF)RG>sbKIQU5STeXP(u$Lj#H+u6>=Jae8!$*kctecGrfF8b7zQE&?yqz+pv7yglMYEj){r~&V8C;P_Q%aO9V;xb=07^ zK0Ib{^n%g-9kTyDDgsfu3CZKvsDT+1yWJPZnD~Nl^!g?<$BIzgP2qg%;G;a;yGk_I{FXF! z1{hnkT6ARz3Q>TA;k?4_Je2%#V@2|>1C1wz8#;PDC(|5BA(N0EYSQ|W5TUdVb?{MI zd+leV)I%JBTn2j@b2nW13xaEC_P zyF?($ZE8jzj^$(?P<)h&PYxG7zO%BurMrHq#BV=Bw6YC?sOpt|@!V?z-79fsbKP*GF!k|o}TpRxKf>&W9ockJNs*Vx+P8WGBjN8M#LwD!;x3i!#PeJi|&UO)K5KQ(;Eg znPTvBTgal1F;WE4_bl5ojm3lmKNmb+xu*KQ(G}-2Ot5`du8gP0sEsSWS3;##o4AqSCuL zv}xENB2rG{icYNDQG<4K@KJWJy;wBSq7oz-E)&N0V1Zy&USgG^Lac>?_1~4Kmm-Q4`7>e5B6(uCODo{z@VPuCz5=e=U)J014WRa?yO7 zyH_+JuN>&ES6PLaWi}%(0SQD+uffP(S6jqxB4Fz^jXlkb>i7%T?20_wQ9F-Z(bC?w zH1|*$)XL~;D`tZs60e?P)>$L3v9T&mmcG=At~6HZa~yo6&Mp2adas@x*zjg(^!0M+ z>=-McaW{mZaRQonV+a~ApdD@!kkj0{6kDGdusFhpfCmc!(@`=~b+f3^4sCCTCEo=e zNGdnI5-redt8xHm-C_&a?w$4T( zHp7DMhVRG=YRxFO*zY>ot{9DG#t$3JAVqWbtF zP|6QL@D6|2_SNJF=b7B7;~gie{@#yRmaccy)SLt7y0nKZy*(n;jb_qzij0!#QKN&8 zvi9Snk$S|)agW(jGQB+`!ydQwNY8?z7`Y9Ii%{vuv=K%spAa%+O=aYLfneEz4w9i2 zPm2Dm=Sp;t45_C=5IRVP&J087AQ>9@w2&Ik1%#zpM{^4%IWTLHGee53MrpE{vA5+r zkR0x1EKe_URG~1AjIxJB)*(o}m#J+VJ|hC8CbgG?kBVf~v!Y3n=LI8up0m?8wMh^c ztds57SZHa7-zDrDsRr_t5J`U=Qo$vPdT)ofxuSy}S$FvG*%TOHc(>iN74S|z*E z%iFLvYjyBZMk-zuHHfmv$jd-N^KwSoUb0!#WM5%q+RL`4s!e0k=jA(NVxV71@+mFd z4x^B7dyQs)ls&oimx1f$Ci_!m&}~TUat9w}z5KOE)){#bNGR)!w7hP!u9TM#5#*k4 z2wON?L|_0V@05r~#joHF3TkT?O&X)Ql`B8*?^OI5o8F<|^$Ig}-11EkI2G#(2Os6S z@$E?782J@Qu<%fBa~pDJCc{kl~{D5t}8@URdve*U|n3od{^P&eF)%<#pODeqYe zvnuo{ly3|uOj7TQNjF<*$OD#)Gaa4nOUWf!w4U1`5O~__HIAAR-&?Pne);mepoV2e ztoJh$%g;I5$Eh3xyFj0jmp7H4*7Os8^#uJsPxWGZF?kH{=isBFnEbJ@+Y1hC6wFC{ z63>CHf;rDf4tdnkdeBV$n6m$;LhmlAv9-Pnu3Ai(^_eK!0wM&JnW)T9EBiv&?E45>Bt>U@X@_9NuJ%D;bf!Dt4KM1z%CD0A7@9u9 zQOo1&KzLHR4*$wlX?#%&$N1t$6RVGM8gN$na*TmVsCNS4eBPYG#Cw z%Y3Zc8Z%@RkHj)$EQkMM!_WtzKj+ks{?*n`eXvB<0&%G&;zu7Mkvo60GD?&Emz=$@ zU&W!`@Vkvq4Q}sj#AjZ(tLu!0FdRF|?B9H*qsFdFLkL!9rdG#TeqtijXFKFIGEYRO`mIc3V$m~V$eeqR)_|v6uprv_D9CfpV;!SzgkEodSVd|F|=<8teS)#r{ z-xotXFsbb5HV{jb&idvyvSP-CI$kMzvYysOoC)}V*mY4q-Z_Yg@GwWDY+x{$bTngY zaz$G+{PgU^b!%5dccBBP{&nb>L@#u?9NzE6rD5oji;R|oNfjvD zf4lICYK9E~O@RqLdMR#3swXaPve0RO_(*sUTpGgz|n=k1~N=8A7HBWL%Mu zNz|`u#_WItdW&+mudsV8m*Xn>Ty+R($1@zRFQM2-~||vf01IDxEs`QTB$a znE3QHX8m@Ch)rRqzO9K0+4vh?oT)=Z6J)oJrOmAkn6+ed zhwp;THphQCs``J>wqh%UXm{SEJjM_iNsPYDY~JASf|7*9R@Ld{&s-2?jieix@7aNrvsTXAwu6{CUchnxo3-@X<>t3FL>IxB-lh8xd7qEN#c4Hnj}SSltcjdbz4uHb&Xw zNKcvV#|$%hhO~a#Y(AbXWjis6dD_88T4))ETP%EqV-@b1bW`3b6ef)yuXyWA(;SGA z0TVZGR;VQDlPR+n>Vu4h5`VHRiX=WUy3ruR8clCEPVqc8uijX3I{KIvBYX zNKkD0C5f~biws8!)Js=JfexK23iLHcH#_!D>9~vq0qEC_akxr~Qz~C~@KMh0DiNuq zLSv+5nnhGm5J_i8t5^*5EERfr!_k|;V=>wr8VUWTNynCg4=?eKR#@lXbnsD9CQcWV zWddQJXYc_D@-WwwUfGN@I_({(B=ypdvSEf8=H9UmvhnpKTxaCJVhknGIQ4tRz;=p= zQQ^AI$3;E6pfx~HeDQ35wFpqHn>s8tbjeb!k`yn9QrZ)~M zPegSXT;YXemzJq2#gCQgPaQQZi)Gy_AZpzFlv(Z=^yg;SJza+XKI;1C4n8WGBdTr5 zCF78Z&j7k=K9(6Mi#Q zWn}pxTbK0*GPE(f+nT07l*qq<1a(+{B$2W`gv`ehnY36SR9u{bw}6C-i;)xl7AY=9 z=B7k(@g`YRW6`?&DWrIl>>CIBd)`?vZ;76qhk2Z!AHe#P`xOI zFCkC3=zgllF?&{2>q}YVSq|5iO7v_6{+j7 zLdg99BrtaAE2Sn+Zi}n&E1S($c5t>Bck&pU0Pkp*wu?%d=c+9O4;<+?MLm+KG5nX9 zJ>o1e>7FhvGxwA6kVj2V7a!G)AC?O(_A$;=ULrjgD&{@bDHfK!Jd=eXim>+R7S^xc z;YedL12lI3n?s`eL;PM!< z*NwrtGle4toSlvK6@z)9t9JAqXsF;l3;tjKje3mOVLm=?-P=W{mscZWCcm5BE`29JaM)(eMP)@MNLkCl3)C?(ga%H*-D|R#Xs#9$*xef2at66g9xbM~Yf_xK)QH zMKLn$2!Zr*1@a@1!2MMBmB^z*n;jqWF9u02|4gh$6Gonw2l@XbC?Zw8e18egP_w=Z4k>YGEUSZxZccLrz-woTF~@9f8V@QQ+X@)log;cL z-B1sMM%LbW=^wJQ{g-rl7{aMdCV)!TDt zZ);xV`?PQGf<`s&;ai3B3k|KI9qyB@ux2pnl-q1yYR}Jhgm{q#wR=~@XZ4=PPTN1eg0pE?B+-- z{pcw!op;(cYJJQZlHSS8nAd;IhNFs>Hll|&mpvLY{7x=dq>+C=ZZ)DOW0Ys))+dAx z@{vY?^?%CN2EUrax`nNc66*a*a)!X1^J?I#_94>^5Kx*CAw8zEN}X~( zbg4_%4jv^E;hlql?U8P7Ep_oxzQ(^OnxWIZ%Jk|2e-$`;_&J>!_?njlUepS&HtgJ^ z)6JM#Y{SttrWw8 zN|{~X6ZL~PSmd8d8V8Fj|f=x@`!Zk z94-s z9+)bl6KBtM5G-vntd613^EBz9o{vh& zNRJ-`vOppi{3J@Mz)PLC)x*N+{|ZAAFaJC$H6}ZC`|uaB{Hu4ZlSgJn4ivOubl?=> z>PDlUzQ2l4|Axdjy7)*b#lMSeQK2*P6p&EeWu$SfEp$z)V1)W*7opOR-cuq^0AUXs zt|&`8y3qOWlfqymbTGB2V{O_^u1W>Nm>IL||DyFK`fsT+Iow759y1{hrAsey$(_1g zri!MOOI&=U!-F0C%j6lkehxZhq|9}AQmOKB2vuN3+G2XL4DZMSi>Ul`$1)*xaj!78 zQed|iN(|mr0z0S3VtG$dVgrAH+itsJ@;<+G(wzfO;}Ai9WBXDew^1J}r(9ghl=7-J zXYpYWf+AP_ao9TD(t=GexYEMtj7xb$SeN&8th;Ry`NR^pqpO{^S~r&rXMaa*2CR&rQw9hWQ`(jY{s(Y7vsl)ITPz!KLYG6oeW1YEa6q*IbC~c&o8^NY z>$}_K;P^LScH1| zMvjBjS~nJDkJYoQgEO| zMobXMK@xdLAgU*I#~fV#B!^w@O))c4jzKFh2-|y!NxkMR4|69w?myRDegi_^1GX+sPK7(k4}@`UWh;m~qL@g3-%k(CtL93NmNk zT|_`$=E$g#AN@fKv^&3e;9;$GSCI!+s| zKHe;2>SU3^tY-oxHJy4Z+~SD)!NAc@{uDOYga^J_);eQ8mT| zpwBb4H!a0Ui|4ucNQ(z76k6;7lLRA!7CG!8qI$q;%g99`1kU)3Y`eRa(W9UlMs5WX z9J|sO+$}P74}oAHwaAkKv9)w*OFJE(VMU>-3q@`HH&I_MvbEH72$BEA&Jny7;3$<* zOJn2Jm$-C6>Yg%I((ffMKGN@Zds_XPg&iXo)!UY?mr9v3bT~mDV3u_(Q{QM2RfyYN zFt^5y|5yi!D3eVhN-6{ve+NjY5E!{3Ef6XMMh;qH5tWbij=(NlDw4w$8K=0&?%tMe z!J5Y#Ol(EIZkedam%D1#|8fRyS4^WaTSQz+^c7|v{+>(+mDm+7J}R*@TCDnT3xVXOPBalCErvhBQ8tw5UBwnvhBA)e$94%p~2FL7J3FYF!=;X>ulM zWB7{)9v><}XWXe9#QNXb1@7JMzxn6gSx@^^&sYVo>=MHw*3uTatJ@-Wq9aR@W^cAK z?Xpr#bZ&HUV$R>C@LP7&nzOF|mX#{QTQ(y(`esw3+GS#>M&0bhdOp6>uy&a z*W>@Ra;$4ris!{_hGk|&-(!r1lVnC{ZE}x`kLuMOM_WCr0u#U(Pt{CGA7dvWKE z>K7yJCy83*X>5mx#s-~ig;g(4siPyD2f*QFtIvsQzVnn!PE_@qo|?&t>i(G+PE`2^ zo|YL-RQubVp2>--|4qr+B3Kr*Hk&uOc;5_r1KrJ-fkn2C`k(3KZDD#am^z+uaegB_ zzp|Zbu&;9Sw!kBI8fJKd2*gP)w|*r%mma`m&WeZYHN z0@5!V1&ugg1oJ$)*O%cOVbt=~g;p*41&KU(QA8aqQ+aVj9gKVcBv6NbQHFN$B|-=M zZcd;unD*rd^T*=SV@?0NS0F@~XV^7Lz_^L+Oz)X)2tK~CGEma=2QEIUE^}|Snl_qbO)|3gZB~;e zvy6uZv4_R4l2e6p}#N+oi78R{q!$fe3YKV{Smb>ayF1q zU(Cq-2ShF5J4k{A80Q7CqPpWj$KFBmrK{g}V;)EJ=L5d1{>pPEl#=9~^_7c{QoZ(J z(b_3Lj2!kzBtMJ{`A;N2jJynlmz{iGobyBP#K0aRFV{KbQO6$X|JoEt#`y>kgh4-M{9)vv*MwSW zk;zEQ8#Xk1m47b%{Oe88-hOlOl6l1L>T4#W5yk|n*Lt0c4DuIL;I%G3Qpd$_i!A*r zk+OGe!p(h9ETi8QGL%_HzIo5e*!@V)8LAa$XJPxXW9cjJi;3$WF7AlWHDk>(uL%4) zVkV^FXmy?@OSAgGMyd)uit$n#4Fi(KM@mV5Eb4XA*kA=({)z36RUZ)qnj&03IFx^V z>WG_qLOgo7gn3(iZh6MxjgjxZ5bF(U#*7^JrKoRbN@Upb}@2nBX?jQs`PB4IncM$gdUQCgcrXet6FCaDq?PxkXaJ`hL&eqZR zs928p(RQ|``7zS#r-(Wjxe!RutC`M=k-z;{6f$2V5TwlWe3x5D4L^&S5)Or8b(wWa z%hFnFI(2)hl%*x5`Jp^*@|!4PT2eCd?C+v275cp>TM!$L*8j@kCLrFYj;bm0nNN`(8_Q-hosrGgw=$YG(;0alNZ|Wx zHq#k70A~eUFPc1sGx+v?Q>LuN(SShMUUc79zcM&i)q+vP-$by(`$I!rJIx!aaVMwL zRu)Z$O`gG0G~*OkZfo4Iy9){D}Di{U!W!9(UO9PV0s zd2d*3>Eg0X+VBysbs}~4=`dGwiX^`coQ*@=D&qF#!>z*IQnZRKwc0gk6_I(V`DgY* zwo|o?W|B1xdX%PT&WdFUsF{q?_^2q;TiaqV{sD~q284TurC>2~{5AraEJNFMTY+3E zW!?u8ESrsI28VX;c5c`yfRQ=d3uJ2<&+ii15PcfUTsKzKncjHyqPf+aVDzlyOuKiS zDC%K>aXZF?C0vq!j(78h`Hfv~tyNu6lG#fwOGAwju;n{4+6`t)nBG>C|K}u3^Eg>l zyxVGgRJ;f5Ac~i4xQz7QQS^dj!)4@riCid=t)>W>Q8J#JfrLCeIJ8}N5(pI{BaaD0 z^`t31LrZtILVz$`U?{Om2*PZEp^F5hsa7y@L9wkBdMk-MOQji{Be?F&uh;5+AH9lS zJ%|5pm?|m>8z<~^Up}m`%QV*>_!y(r#s62^y@7r7|LRXWdyF|W63Uw%r|Hnh-l3eK zI*il!sB$fuCED~Y5>d19FEHpw|4SnOl*p|TSx_!yZj(rlIRd#|B3DV|4vExM2$?%2 z^1DRtlE`J1R>t#!@Hb~U#}!qAQD8hN{JmMG`~nIOS{}vUnq|smb2BLZ&MZ^rR%cNB zjajCw&7}DIvP`+MCLM|()rZ`is&7}C7;!IgMPlRGzO#Fju z%-EaGVR>~1f1;;gnoax)*$2}$bdnr?jhS;(ov zuok9kkVp%wFs}@Tf2Bokn6YD{Eq$fn`HN>U@*wR8kZf}8PAA{MiJig~@B|1h2(Xjq z?zC$!nx3WARuN}_xOs9=4~9iY-)Jnl+^jt=m2uG6TCVX?Zr@)f#z`7m8ToWCfza5> z$m^{ZQ9UqIW@KE4KyXoJcQ@|a75L4|#k5p;vs(c-b_&h0$zS&LbauNFH;0LZTt~NS zH<7BeIv2y4ue1N(KkdL1T*38!^=HgYoblPy)n-JyTxO2Ot!j;r3hvo8_!s`9A2V(- z^47irp>d0m&-W7uja!WTyuUzb++rkopg?HcVx<2;0-kxdR32#s5eY;%Y}sEc9b zRv;lO2_xl)+Ac%PUtqyBJ6U1VZ0aP}`t;RkRiAT7 zZdZ5yWIx(+WQ&OZdyJo6X7Y5MsnsXT#J!F(tkd|YR$p?O?E&-~5}9?nK;D$dw-R|v zB4?c;WT@NYc&zF$V%Ue7(R7O(QO{q2mSP=1%_r&H@brRf+0LgaxP9(oS3> z)fDCY2~OZ;XpRA}^gl1PMWd39EqG7_ubc*9*IZ^5svO+7MbEnkeA4AYtvF+4CI0~8 zQs0XodqI@%5fnLLKm7_ZU0JMg@-k*g&5Q4>Z85&x1yh0OMlxm^#yiPNi%w~}>8wkp zgc@E-<0CEqd9`RN)bJR&{2GB!!((L5wF04r$H)&7p@zpu@}Hs+QNv?o!1V$_m9xkc zI6n6tO&7{BwW9%BTBdgVjwu0O(NDF5k^3+uV1#N1BS+jR5UL%F%)ZMa zzANAa0r$N-1D+`07c=2W0zT*8R@zh+j<)F@QHWGo7#VeMq_Qxw#eKH2;DifZTiXdM z9gh16@g?_*I>1YpK*eFtkTV_-eZf+VYgwWtN~LD{fS`!!sj954+k~#0O;`GW44c|X zv&KiQd%?pZ>)2_wNUuk%x|AC{!zl>cKPoypEb!>Yce;$Jo?ac`2#$J8XpnTv$nwVp zLfhAj?D>Syt=*ON)=Aiq>@aT!*@e=`CtZ71x5ez(7(Kh(i0bll< zD4Jg8CaJD{=nSjiG(K+!KJvmaYfN4wWze^J!FE8_I$<_{`K++F$obL=Wm?64tow@V_~5vCMb3zimfOX7SbRoCD;Lq*xfC5ciej0Ep|65c6UFs z*E!ehobdkKpYQMcyk5UQ9$tF{&wI9KXLo03XUUb}e?BMEiXZx~34=+Kxw8Zqo!|wA z=FNK|fkEIsvH2S5i6XF6M&$W*FWmlx| zxCf1)lnTcV9zp8PjYKC-gf$`Fb5CJX)&I5=O&Ez9<;Die!)HIui+9>U27z~4--iaB zhRD)KqSII+v>zgkazsC|B#Jx(MClpUpCVHpla}SZfvN3#LV6>aB0HXu7A>b7vvB6b z>$AF6)t+$ZUpmftZevzX*B@*UlcH$*;?nM)B-OvbOwANrz?GL=4d?g&P;NFv-iJBA zAf@I#HH1OnJr(_i^b}vfAyVQk=_$T|L*xiW_yP`*E$>Jiei(yDulM4JM84~ch|LFr z@WU8Hwh%vsv^ClvD0ns}sL?lci2Bw$hO8DOoCjLghw+eT*pvGJK29B<4ltLS@5|TGS+`8G#evJJ`Y-C&Rt^|1kPP0 z90YesDzGZ%8)$;x09@G$0uI`LeSA_ufy=50OgX&}=`+r0h*U33xQ2UtK;$k(IHw_! z0gE2wPR?nF?1A%S# zDP4-`uXzyJ35X*280Stz8kZJ`gx3TOC5TDRTvLXLYl7pL)a(ByXO=g^t3oHX#1d+#pC_Kog5y`AV;&9GH^_AMkd8ADPP#sSc+E3jaw}6&Yy4nnmaGTE}m2^v6YxSZS|@ zGli#@)}uN!1nJ5=;tppH$Rm86hR8`kP-({JLPWa2 zX#^sCE<_}oBHTX{A|Y^2p}fy6Z*LKK4G8L_dH*1i2qzed9FoutYgl-s?B0y@??=oi^px2rZNb8h)(q+?8F-kk%~zD@|g-G@MvlpMfNl&gMj-<#W>zANIu+L4v}n% zaC13CB3qI;TtpyJycHSlTtpypo+4aCATpvgiNk&UAyT*vX*ce`5s}Rl;lBP5Y28-D z5m!+-qv=lDsr6HVc1-ACr*R!Dwfp@aEPttr$w<$tUkEls*0XxjB5;11!60yc+SO6? zGgwoAOEW+Ja4@-*PtlRe&qqw6lD$@Iq4gfh%~p|&bz;IsR4pql5`%(*DalqKLGIz_ z8yLB5XTd#^m49L~+~r0v8$d-G$RMZ!5sdF*0Kz?P1g*LnfN+Z&!RZ8K@Scf4YIGyf zWHVpwi#8bb5fIquq^`Jn#akba*TbX1=Se*5+o(ev-|kFYbzCU#*tPcG%3|~X)^F{O z-RMS_iL$cA@(N)bEh%T0#bDbnvrCSjU>61l5dsV&NN>OPEwlkttNP2%A|W8}~n? z&z8xzq^k5Ksq_9{#vpKUQ8@}~rQ>?}HE%?$qQxX5*(hR=L~RRdF=fEWV-2Ia#gZn# z6RnuogmCV35B6tt6ukmsJkeUtq^3&EP446L=V2i@^`)+f`+fSkvz4-?xMM$(H*c4f z3<7VLd0d02NCP{$$Z#4H>lft*x+0{?NFriXj|#L#NHwTGp~|H_ewMB6{i6fHcn;~7 zz+PL?MoN;LC(SG%g`pZ)2h&^%4#AdAzBS$cuY=dXgX$t2~Bxr9jsgJ8a_CwGg_x>xq}eDyuy>48GnSA+^f;=>3{m4 z7%o)}m(TyPFl?)QdSE$36h*SqzHPac0myk|*D%56vK9%EF0lW=^)X*LBl3nKeC3Qt z2JAmD4qpf&Qe-5_haU_fvH=jig&-mxsbsMQyLl1EakP+W+}x7yJ!IolKCNT?X=4b_ zIw^hlFFLPV1~YR~I&TMKTfiLAu=W3(4BII;`xKhUHYoj027$ME>+z&5_-+M}CxBr4 z@is?f!~}xyHb=y9B0+eYBeE6{Wql&=RuJ)+WYFe_Tm(eft;iPnh@?&xZO*pS`uvzq z+8JjHT?5HBDt;zL$l4i1p6}xJH2-mgh{0eqcl;qYwnsh^en9i$eF43|_y4FD==izD zyLq4Y@g3{sJq%*;ekw4Vv>)#$L^cAV*H4JFm_rcWPl(*32R*gMrusjWJ|=GX{V{vCPri&6MKkA(y^lfQ4SIKpL4zVP zXentn&iIHpEF%bSP((ITgfl)OjWbC;T-YFT84x{TgGlId1I9RXMq+?vj1jM?EkRg|7l7v#FQ1fc13MuBB57Mc0k_B|DeU>YlZ_10`DUK4cgHG ze`?*&BVxUgG%DYcBC?Dkd`pUm=Oz+|yPrqo2O!uH-2FTv+cy)0yProSb_+p<04pGp ze=EsnC`EQqWEe%d18XYMQL+UO?dUWSIP_a~rHq=HCfy%KpxK-ee%DMA-*|9E` zD|QEoo`>e1YbRM>*oTA%M+U|FCB}leK7SxL^Z?a$U@Tg#T2$ImwIwu7u;h40XGt8$_09dU+qP(ICIHfk>501mU6%kuwzG zq7IQImxZXr@aH0+(^|4}|DuvnkU1AwlL)q~#-m%%w>69D?v= z5a!e4G3j=`3_@ho6T)8nv;vX!PsuWf4+=!uJR_;``5%$z6ybvck&Ndg4j&YVc)lPd z;DZ8@pA_MP0+AgrNt_E5Y5t0onyd0L&Q*$VRX!sAuSFcmHa;Q9FDN+4FDxbw3}TR| z)EmL;f(UM3!C5#GpSs$TY?+JvuCz#H|V~pPf zOZY%$gd2?gkR&7hyM9!5Q$9{xLL>fy=Df)ua0a#eOs10G6nPB@n(=X!A;t;+O1j#d zBA363sf1ZjWXX5Zp_UY>_md!26uI(ClubfE03mQZ;0Nv|qT@rrGY8o3Cd35BP?vu3 zznNJ{s2cxaw-|r@*yzswpAuoWWd-CKk_0?Xtu+vh4o>JF69+H&-ewSZ>iVB zU9|f?{;!EgYeWhxoAC#@yO8*jWkMhvcVsgNve>dwqiO)Kc#7p_1jEaof#Ae74xA`~ zKfF-r7O`YF4CIC6zJT6%#8?$@{%ojVF^tS|@d73f}XW9SL7uQH$$8kD1g}S>?b=L}#fk z|E28441en@eRcm+i0CT1uwg@BIoVVB_R4X4QWD+*PZL$3Kq3vdC6$YnrKt-}Q* zBK`9dgbPSSsumzf7>!fifgs@&aW6=az7$axA_%NuL_XgDK@%QW!wBSYVS>O)MIe`o z5F~=;Q^Aqs6G@S?#nfgtymR4)MNwo!aWQJdUW&K7-VR1E%A^u%v6p(r*ij}qnd&zE z=(`s}`mKumupvG8eU2!NC?lAn_Fl!Wa6OPo;`N z+%Q<^3*;$9VC5{3<&{XBEQ%ymR*SeF&R2?v%yLzu3SQolAmZ#s+JJ9K z5OJ$YgdkpvmY4kSPG+#5$v3FNs;R}b=od_iR)(#-y8ENuzQLgW$HA)%ViQCr?m3$- zFMB1g85hvfa@KgoAaK_BUQ0BKln-srMV$%l=sJX1ra-e}Dt>iEDzdvQMBMAC#Su6+ zpg_c|KIud*R1ldCh@MbEq+A1naG`?8CW>$a3Pb`Mk|E6vC=hXIL=bL3fygm}@XbAV z?ZcasNEFdnj04FoAubWLG{#i9JjmqC7rq#O6Ck+b;tO9yS~VdEU-%;OfFMF=C|>uh zMrNIRo@${pe8<=z6K)*zVzT$L{e)dp60a(B*?R_oGfR=?qQ>$Yl8Ed9M6WK0bZS8m zUKd1OQiLz!5n0(%t*^vGB&ZcZ_#z&WlC25CceaQe1q92+ceaQ`v>^!J*&>p=EkU@1 zL8M1JAz_3}kBkY$S1AmaB%_Gik0P=c5JmYYuOt!a=p)3m*l6>@1xF{ur4Y9J29)`r z1pJ46Wl|ZPQK(kSr_@>hw~37}Nt%6^9j!Qb5(!H-vPLU00UkX5&LHqQH|ZiIiewcZ zJ^;2w2W9k)TR9lCEu}KfF`VO9zyM=qL~=8V}Qa zA-hZwbA7lk;R`c0cT1yP=;WG5y=8XX(D;=fk?+*1{{OPV?a=)iH~OThBIi0iM_=tiCL-n0Qo}`aL15E z4A(;7(e9z<k%4c(CCQ#00bKy zFRt;l6&FVQ2^ztK+k(~N;u@1nW^|9!C^l2e<;$UQdHK|82)ul?LJi7?$Z0@~%g1+1 z;n97A0}~8+V`>;FpGM8M*GAHFTq)A-T7l?NX!$GfLA^j)%_p@w_YV64UtI;2 zA!q=!v?h$U^mAkR)!YTwOPbeL=*IkN2)u*+28))Eq%QJvVg$Arq819cdeD~`@g*S2 ziK>Ju7>FNk(%;t7VMGPvpq5GvYZL9z+(PYlvJS}UXm z0$$acBSqIrD!xzvm%3&E>hOnvEB8Aj3AD4}fxw#x?@Bdj3Pcv9iKbwDmO#XB6hXLj zK%~@YA{|gi#79J2LIe>GKYZm2Bvqh3Rf$Q2%Emtsp4IUWgkxCD>oLWtnfz(@3Czg0CTP9_ctw@CYkOky7&ohpb_f|Q}iv_+y38CQW}*}@l-s)7nkAeEPhPG;pO@)i)q0+qQ? zWdBmpo2)!V7A+$s0JWLOCplAeAp_-@Kth+3{z7*rVx#U(ghuoV(#BQP|6z*{F`28H zyP}y(5M=V_!b|Ln(IjY`8gdT z?dSjcYrexheJctV-L`Q8GO)5!Y!C-s_GbO?`c8IA^g7c%mh+r;=5ZCM!Gbw-R z2!US!D0?GzmzJl`ZV^S&^o^Lc;w`32C?(hNd&?CQ#5tBr+Z+coBze=|Jq+WYrLyzeE z8B$9%Ria~dwN%)6)2M6_j5^#XRn}bI8TTV; zN>)++@o>)ETn&NudGtln&U`0`NR3Nm-sU?&M1B%PvJC|nvVQR(Eo5(hNHpm(X&kgZ zP|9ea6iUBBHchS6QYrFumm)i5kt%GrjjR*&lV)vX)!25LFt1)4H3VMq%xebKLnP`t zK|nVx;+WkKb&`bv#<>BAA^{~8Z<2s;5Uq$$yGi6AzJ{n2IWR0ZknRpv-BOF!5ZkFG zH8w|i<7W{K5@Fu5RJ%r#;1%~)L*NyEew$Q}_bVcU?+8Tf{gm|Mf@5KeN|qyK?vlM< z2R`|UeTu%2Qo2z8w~0NVVP4Efp6@!*oOoq?)DU=O=H3@YX1p?pRL&L%*jeaCoHFMj z*(o67=k@$YvR5RP5!v)WjNcvY53u-rcG$6j=5y2&Hm%$Bm5r+LgFMwh% z5STwHw!!C&7Vy%e-dA@KTicuh)O1QsobjDDjQ_c9hhsSzph zmLLl$vV$UvDAN8NiBpv3WARb6j)W^uehbO)ex#p~53)TF7gwIW)RL1jQQ(QRp^Cu7 zTJs;XVt%p&{X#S14d|zaz#Gv2D``Nu5h0MvKg32zV*HvPTo;T4duogu^NYmg+FC@u z0fL)C?#&62iND2KLBeY+|GBB!fsH^ZC@=qE{%Uv^l3rsGGm6pcI)6->1gE7Km|aMNt4}F+Kn!@; zkMaxTPx)%^qhg99ixNVV!Ejq6CNU0d>y6iOJsmZ|v?q!WPs8D;@SS#9&sXq9hr!0_ zvlw|yPN1p7YoPEo1l~C}i)+jj9|V$3VqCaRKZFF=O9=jxEP;ST9$HF+mKfZ`L1zc4 z)i7ZSvz$nGso>#>I9b_`c)v0lp>M^uGMI3vTBE2lX{&^PHD7VvMxs1lwWX2ye3ht% zz?;IeoCc3*8K18Zc>##te1*sy7twt3e1%Ad@)|TX67y9EIF;a6xDDNW+E>ts1zeI^ z>ZlA+-AFaPP(nMR|L_NAB@+ulgTk<6dArwu7R3viAz2N9H_)icq8Y#)FZfFZ?gz^P z{)`C{b+1BNkuSXvv2+#OA}_rV$)pHBDMF;48;QdYbr7jhRUqJpFc8EDVlAr?Of9UI z2uU$_(Q%SBKOq3c1t#zTP(0MI#Ve2S#up)4UtQEx$_>{c{a_8^9}o`Oig3Nup41@1 z04>OLZUOvs9*yL7BtrXSO^vW18>*HDD;%M}QvUz+zkgsG{o8&f49ZLwpAA>@r=ZMg zk;3!IV7M9r=b<_E2@hE(!@>nR4$^93hKd6EZ>n__@AY(mii2IvcdGGCbXvAioiiP!~wLZqK~FA|C7 zHYFU$+0+!#h-QL_@ntJUAL*sRWvj$we>d8rGNh={ob;BOdgw)xw?LvyAPnx|i{w|g zAXUJV!2lSJ!C(=@`8_e7F#P708eyD0Q7w6q-Jza#lyj}_3&S}Q0PR<@ywr+4qjN*U z60pg#+{-5UOQ?bZHjht?;(M>jY6$W?(T)t~T*1-7aiJ;P*O4JzpY|GYBEa`Dm_lD~ zGB?;H#Y85+j0il11ZEvY)3H7_{W)qN;*9dJH>s&*B7c($v2}iAipmob$u;YK@%@$B z6UugdNZS{P3J(g34DJuFM4P6D{XhIDdV%vL&Unq5b|VPBg0~9I{WWOuDcOOvFqz+B zpi=fz+~u}^T#$)U?S*q9q+&^+zX0bvdNm9S)RP@?F+qu7z@tZE9VBFjR6y4Vx^;z) z4M;;Y4E#$ z&QU~=tx!vS6n6a=bG24_Y5)B*xx&O+RyLs)Gb|fhrRH9J(`d=~w7g0UfwO8%9O*2T ze{?9^Yl7`J;_>lhjjqGt2p#dn1c5VdjE{&%q7Y@0#H}v%68;9TaEU ze&Uvun8C#Uf{EBYkXnc&CX2aOb~1xV>l88b$qx`AQfvT0xLO90*A(INC?d@Vi8x%K zB49t5FpfPgBa`4j3uFP3?HoeHCT@Uq{xx7&8BLXaMvx8AMzz%Zzu+*FT%{Zl80{#H z3&A$417Nc~6$5_Ed;Pl_0JFL?$wZ%A+NM2EDVNili zU^AYmG4f!+O;F~WAmonhLk!a>KT$BR(C+l-mksov8omgGd7<6;58I;_k4Bs9>Hqkp z30;rKlX`Hs^_BS~^Z5F-d*09cH68HUl0aN2Yu7;eQPTzdwA z8LWr3d_yQaXOiq~I0fezLePE|kw!Lh0YKeD2;6290_|}h-)HDdhOj6vfecRp>}0ky zLA7=cnIzE%E4QtZog$LO@AkPGVFG+qEhQ@>TDy`lz5UnUqy4M@=^v;lC&XgbF=1&> zip!46ySw|eu)O<^t0D02&sj{`-&S5H_74t@kgdazXw?$2ERtUmN2KFYu_%%?1c-c~ z2-grGvVNI}BUyz7@n=mDOwJ?%*eXdMY_wc}j9(4JXjN8-r8MJL0}&~_k|6wQAR<<) z1R~jM-A@UYK(b6AQy7QA$+$?M+iHTqDYrmWYX}?JhKEMS!0Im~(x2Z#z=Zp+6|D*a zjC(ENO;0HDts|Wy$=wRG5GHU1U}bDFZVQXZx%Fa9$Tt`f8L>gg9--voNyjAwMj2XR z_-rIfu5)TuP-T25V-S~}mlfwDXiRQ?dR`5Ib6kxbLQKjQ*@$ETg4e{jAqFD5c8ZP{ z=DFNqksr4ni4LUqRZ@0ogn8}-wKUgUXNDohq;4~+w@Jk|0{*lH#yJBBYDZ;H5K3x2 z4vL1BJ;7m|96%HW8|w+<2$BAW#7YvbWoRD-1akpGQuMHxs~K4Fi^x|1!Ci?475RFx zcODT{lr;Tgi8%@u!tbb{VMS?W8ypjrmEf{ZG@Q#STU?Ajn^toLj} z!1r>ze+aEYp7W%H5_Fw>#|q=`09cV=LK@K#Ku^8XE)Z#SPc3aU9@xrkX?hGRsPfx* zoc_{}+0JiuB>NH+EXnftlGK%~S&(K@n*7?Euh0ShD%r`IFW)?7?roF4>{7+?PC z-f~5XnK_~=lC8WzHZE?>$3zJ5>p2+R=?R&1!zp6^lptVHB;uR^MCn)tW>Es!@{EWq zl}@Ee@KMi6>#DTM9XEozy)eeP`w)f2Z8kOA;T~?@8eS^4>6-tlw+ABJ1~; zYN?8{emA+_GE`WaSap+3*lYQKy${WTuex8WA@Gsv@{aVGM#O}j7t&k-8s&{%iO|6I z3u#8ZH%$Y3Fr=yZfza@YCN`EU!JyTVBxh^|3FF+0$aZ^M zYy@#0z%7mb)Y*&k*oyOjA8M)n|3YVLr)pi78ySO}C=L519|T;YW#QfaOAUc{d(i^6 z`m-b=2LaLRc0@)vkT|^C5gA%gbd=ofh$I#w2=8`8A_^0PcRM2aiV}odWg*hOIO(Tv z6q#0vAm1r+y$nIPZ5E~$>THYaak(0BjB!%TT*L28?BD$nbN&rV= zat>yIL*V5ObQOhSV6QBYOgCFJZV`K4|DgB)P?3d&gAEgDYrm?tV$ZA6@B=ro+ZBH) z3t#28!3J3QTC9Q%&n=8hvh~XYc5D3Z;doLS$+o4ZM|(g2pdjw~)(j{h@S69iA?hb9 zl@R#=2OzL zQL8$FNLKw~^x(R-xH*P15x6JNKY|qD9l*HF5k_)at1C=odp$Aq;0+4@$jErm9Fb%u z*B5n^Y=fi1`MJDqyN9XxG!TW9tPUT&IQvr-kfw8-l9mV<|hjlgKk;ZLX@5r)o`0&-556P1Le@% zgoa5!ZB|UfJ&fEWDZ|YmomkhhXfX{C$5Dd=r0w4{7SLF5!5iiSsa zL4!zY2V1nwl<$-wa`;=pTL~efzjPJ-&q`?cV=^Y1MBbZo6HFtw z=X$BKQX1}Y#JL+uGY8~MDGdbP0+)SB$t>X*fna7m1UK+~C`R(^DTW=pLX)f2iwF+% zo*Wb$kQi!M&m17l4<#_W!T(Y018WBMbAIj3v*WCP2p%b zmC<~ev&- z7y&eaqV2?DGa4L5f{}xNB>3o(MG|3%CP8GeSym$z&=*}w?Twa)`fF(*@EY##Z!2`ld>%j~CfQ&fK%``fmOrW$;WSlf*zSE4#S-9PMWlpT%o zTeO+c&dyZfn3uf6`I{DvvxS!i0&hIubix+7L&D>tWYa&8ReUK&2oH=QZD|`4!(WSw z42}-v*ZDEEfDDqFo$kW9Y?4K(N{kg9Ch1Xu^*g3@olwc!7etPXBYk7b@1#T~%6&mI z88n_0g%Z&`YEB?T4$y$GTn~}u1@x?O8~g%t#gh`~IJGv3eCi^_emPNZXCDLWe?J3~ zvy+H)P(dStxdsSOtY6|}vS`a|P%8O?43d7CYKyix;>y2{6F@j7fUu=D&{w9B*}0=e zDxwoL+QCVA)WrRLqhwhpd1$JplSDapb<#lK-1Tb)XfVcLr#rvig0kC!R&;mY0m)V*5izEJ(xMf;FJo@Qw}AK;RwwX(jF0a4;Yg3P?hh zxr%gb9`NlH6Q{NR<)$`#lEwrBSCdssFHrF#;=G3RrL8tAZG#Y^Eo(`6Y?H!+f|chN z2+_86gvhY1wF&E5ocePNTu<6MTq7O~)wZ%w?TNqSvBsx2`73P)5W^F`?E6zs7#4#? zXae92Y7Q;L57_ocXdv*OaM&zX+>G}TBDVlh+^5RwJwz675zATGW(<+QtpwpVV~99! zBgitE&j~;CRT!<(CM9X-~v>#?a> zZjH|7cIxGw*}ouQT%D$<)ZkC?Gu$fmoRVAb)ofIJ+atYJ<)owq+znpZba~3JP5p0b zbK|LVm1A-5gwzEEr{9~AcXXMZ``h=}yy0gTUFIbLuDPj~Rq0~|M}IA9v3$VTQs*a4 zJhh_s-BSm>AB0~D{(A@5oc*~hBP~+*>&lYWeKk8W<@e;g{S&MANe;cbVA!Okn@*ov zCd$HVx?J7rOk#BOdUrUwHkgc+qLZE$4R8T$`V$@v$5vo?+PDfzLIkDNL@VIv~23pshJ$n z##&1@9LN-}SupLy1uA-b-Os-5|9$Ftoyjh_hW#kCf4_gy;KLiOXFgqO)gr4yb)WkVRvj&pM}=1N={qC+ z(v=}cZq4Yod3DG3ovXDRwAm?r!m$+(Dz_c1TK)7<)m`hZP1sp_Z=IV?W%?JrcdlIj zS>*~Qp7i|n+3Qp4xrdLA_qev|bcKueZNgvu2;ZD5W_8H@%+rS}J~~qM#W2gq)Ao(o z6zG%HJZ9mTOX>F)^{=`nChf?q*Wb89$yCH4tEbfNZ;D+Qc4cHX*gkVQ`W^9w5_wF&4ub5^~#a3%HS?Up{*x;y0!d{%X^-T6I%9=GS*zUXGNWVe-Dnc#joF@J@(+B39Fvh9No zD+^4D|Iskxe9Jopvu0Mx`};^&dzN;$to5d}poxjkmmYdD-+cM1Hhxof2S3ekxui(L zcqf-DW%h^t?0q@?QRLzNww~iW7CfoZC$-eBa+zE9&D(IPThHlT)h+WE+}F2enMsxY z&d4f1IoYPO{p^i3R!z3~iw1)aUy5?i;V!`gGbqWt)r5BJ)0W zVQns7+<0pIriM9tn#kt;I*S*}3n$ z_tuSz=M26bv2(a{gPYfPSqv;+?atSFOmpGTqoi)dtS(IQ-de4*MVF!zyJeSM*L-B* z1}m2~sc(Iw%aa!KV-I@tTy>^RYnSrP>RD#Ib{gc|pz@PSRra@*YHw}(saD5LbygPL z;@GZ2(dagB%Xjwv==bY)vku9r?Oj{8e-bz9?x>GxOZVS8QS#^JjmKAP+qR&$d#T6c zXC5$LRoEuBi+?Z23q4Y53~QtcJJ-JS*#n^)wl}`r=XBk-QL2Nkj$!JZuez=&>nM$x zc<;`=fg>`D+ZC{QcY1*P{DhHvAJ4x!H>3Ntp%X_IcYit8Zo#%C}n|N8`KAuvl8;Rl$$@UN$#Z9bO%HHa>5Qz90Q+ zt|}kep{;9J*6^GS6CCb)HZFL6TCS8AF`JLR9A3M79n1dxpXM!--f;S(Mw^=Xoy@tM zFT}6X#94_RF$1Ne!yaaY-D!L7e9@e*O{=Va*FB@{&|%@t#^!44^riRTbKgb1{WvVL z@}pw`*~2gV%pAA*h5fX4r>|w1EnmK4`FDpt&(n(yz8_oY-Nlbbi&b$Nn%4Byqe9j8 zei{2af_TOvnUY+!9+DrAe=KZ~VUU-eKUnI?@aLJKtdY&GX(QDa_ z)njYDn_)X^T<?PxBWiuSys&!i4f%Eq{^j*J zsDuB~(yLRKUvT&O>>V<&(3G6YISqrh+Xg({*V{WP>+6wL<4^1>?Cw72lf%H%_D-Hv zr=N@(_@GLke52PF+*JO{=cO-qWN#~+@6?F9l^h-SIuAKo@^t$Z_K|kceL8qO-snBL z+o44V?$saCY`o*I>UY-9t~{~jsry$gJ`Nh?;C^BK*^lS^F8fX@;^1<#<-vYq>l_Q~ zk@_)g^r7#opI$7M_G7(zTd`l;F1;>!YU}BsWmad)l?-9`Pww&mnX6c#MXh%%>rf_N z*AZ9LX$e=BsqILE`xx$6K6OdFDf#Irh2BcznAy*v-V_t?R@>~-g-KJP?4~(gAo_@k8hH7*RJXIvI|=e=v}&d zt|n0WV2(2B^t@!vLQWOV+far6DWuDZh{ z_cu>%ecO&cc(g~)0(-jOI#;Gh?kkHu!u&qXZdIuAgMw49eDfRrVy1s>o2>hzD^v}P z>X4W@?A~eb?cN2t-f(?ZWc`F4PrrMG*?2#kJTPSUu%)-I1kZmR`@LU*hoOFpTNYE> zy!Zd>plwLL`tzQp1?+Az&vng`Mela(9FXICsPsOmc+VwcFBdcK9x-Xzo2dhLTTiz1 znrS(%=KCR~Ha)fNG;gqHk+*L?C$%q<;XLd9?SLx#H_tAdYu%{G$iFMOzKOG4-OIyv zn)}L811ngR+}dbi({1hB1~loXx*X+M!L^&)nX(thdj@ZeD|xw1Pv`cNw|4yQ?K}OE z-GH$pmv*Swx0%n;=I1iXsFr?lbPlR{h7DW!#HwbMt??}zr6xJP8oJ%%RM!l5*Ap%_ zqpOaq8dki}_T^EhXS$|T$f=+y*iky~S$xK)RlE8{4XC?psXXVB!MMeC1g z>$1dU+@?|$GzaewA9Ci!=dGT-tUF!|a(I|Bx$!Xz#vGe&-8}K*^t+qJ~+f(E~Dd)!bwntoeHg06T{nMXx`4Tuj(JS*oqgFL<@AP^z zsMYJkeQp-s`##!!o5$oUW(Q^t=@y@ud(5mg3nyHhQ}S)mkb`A?w$*E!v;UEAwq3ow z$ICx_aEw{(j4S(a>b*6&4!@3b&6;++XP?_^o)^(X`d_YJ!zVdr@zfmtRG5GVZy@$Z^)y%vJJ1=n^ z&ZWlIc)TdT1#@1~Aw4{-ad{}4ZXogw5L}*Gh6jO81+hC#M0%37P8o^l8c%C+;)Sk& zL*Nbc5%mYNJF1tkIq&Fv(Me7}H?na8!PA#nQxPx7n@UXzxV8w*hj((c#ro;_Z zMvxRGO#tYcp#k~1EIha>LEzPz(8^kvM%wCVblrkP4O&}^ZHb+ZNKtemRpmCKg+z9; zdwQgK0yJp1Zm*mk_=m;OW0R?Et#PZu?n&U_?w?KwOkm|D2W5w)p9Ra7xOLesl7XZG z`|nWymcXRh5(M5T<-D!M=1zyhfivRQP2gZ1jriCOB)%CO1{0ZJosb-m7(!w<4iOzMSx3i&$Agf@j2}?c z2GTYpm=;RPjTSJG;a~-AN{Co)6&N>~5YQ$jM{P1JuZk~$ zPLM<-76irBSuW>Q0R``=kVG=4SnE!v5iOZSSQ%Vp!`ZeUOpb^j2OKr0xs~~uJA|)V zlPv54`;%3bgG$P8w6No6m4yuFc_kfINUqFSk_xxFEu@0L>##qW3|C9A3L#kc6e7y3 zc!~sc7(gQG72lm+M_vzPxF{^D;?5CFmX$|hj&fPAkSM&Yjw%SeteQb0OW7#`BAI~T ztiYWjAmTq*#F6xhS+hE6<*z`7#Vq#cV)96=xLnLqLqrr_%;G8tyqH~viY(<~BJu_h zy<#G=c9@8xU(7m`8JZ3kd9o6JE+&t}O3KBIBvE)VOR6C7VlEybvXqO7NWGB;#YE&Y zASm3?=5v1=B1YgeGjv^^#$wReYxXizEV1>V?B(4tpRl z-&R53wRn<7B)&@LbCBS>Mv+m5PN>ii0e6MRZOVk~@EvU}E@YKeNuBhH{ogG7Xm$1D znYhhHuYrVzfbp^_SsYn-}8+<&!}GrEhRmo2NM;(p6qX{OvgaV-@D&LoAW zi)zUWW<>rb2)G*NmKumnoFQUKjPGP?NG%58} z?5bq^ijs-=tbr_UchlHhane8qfpTHNahjERc%kB^T6 zucAhq8`njo^bJ)~rGFG(%DPtj+k}S5L{_Y^iW{Bz0rq zYUc?>28&bKc)1&)YQI!8ilj&7OQ=5ok*YhPTDXj)Wdj$j?-%oSLq+L?kQ`TO>8 zF)$<;ip?h!B)R}Zc=U`LG_IMU%bJYkWP{dR1=f9kmi9UuGsw@x#!QzmYbiJCCYmhw zIn+`Gfj8%%m15?VeGVa#ZXvU9=9Wl zpIY0k#WkufDt?(jYd$CMg5`hyspIsqKXs#c-Phg zYk=UIEiV`Rk-_}UL7g=xsE3er_#vS|6RI|yBO59vOCJ`5td~m4g?cP`31mXoCK6$O z@(!RaO~M%p?5BdjyMFu;Q57kd@?;gd(?Pnlqe50odJ-L;&%hgD5yu1-^H)ht{*^@6 zU)SsZ?+?-*GG&4CqHPMzlJilZ3Iea%#}fv8gvhv)qL*Z8k4VW=f{$cZREX>Z#0FC3 zKk^tsr2T0Uhig+2c|Z`@c7T9HDDe!DXBJ5yAQ6(X^dJzB2+h=oKtLkoa+bs@t!P4w zy_6e2FLMuKmey9xjD@KrTcR8(FI6;Diu^;8tgp;%MbD80`HW_ za$OM1HwkUlK|2`(yPn9HP_4hn0C1;3MeQkwRYECxgbI(j3@1I4mgs*-oJFbld6&gS zk+k+DPuQD9sUYx*w7X0=h*uGjtAOaO%MppbBC04q_=iZ-tAbO-V^pMk+Ikx;4A?bm z@fcMMD24Q{1c^o{FBv^Y^~c0nKe_r%XwuOjG5V<>@T#}DVNi8ME(4-hbwna>imHRx z3i){ll4PG-L>G=45&k5d@{))UG2ehzal*jj`Jz$Olj`s3-@N;cc7S@xvqX96Snf7S zoOf%Y3IeZn;9Y~dA@U6nW#b{)ghxZ|+%2Y(5d`_h293GoH@i3nEf+|bL@ z7n0P=78+)JU5D2jCKM!+9*{*hYH7I7Yp$FD?@giHFA9;?yC6alW%LYC!A&atwTJG1 z|E_(F+=Clu%m&E|%jZhA=AJxr#lOJG9tS$S9{OyNu0U|lz`QAZn!(2lKF#6N0zNI_ z(+WPV;nM~_ZQ;`nKJDS-4WAD1=?EVm_;i9#XZUo14_L#RgHJ;XkaQMh;NuLRvhXPf z9~byQeijwrQxQIu;8PhsRp8?aA2;|^g%6nFTDZffI(%xt$M$&D)^%$Qtl1;2O_L^r zde667+%Yt9Xp2}U`@~XD$4uD%D9_c-^UAM#7ulg*V)3wr{l>Ar=?lJ092`(QC1z0N zgrz&2yxJC7w0&i(T?5{Ry*b|F;JN1SR{zXya%{lO;oGWA@Lm(qvzlYMFuxhqYpEehtlVkD~I&tIW-=TkJ+EhLyO{sU%qnE?EM<=DWwOxz$_Z@k` z`+Be4UJuR3Z>(*byrAxpQ=WJtzOadbfGMa!%{S{e?zb#&%6z{h-0O zLkE(EdqwTpl|SsoE2p|%+x(8!HIKYKW#!Tbi4&(cNgrgF+FIzkZcnvg)auX(b<5Epp?+*IKWB4e@STam1LJ z?v3+5nf@cJ$vuZ1TjSDF&rWE+X3!<+_gL=&MZFi;ulu07R{H+Z78|#%9C5eI&8=k@ z7OT26V|u&0y*KCWT(6Gnszp^BWS;8gQs+jid2Q#+vuW_|c9pE>xf*T0aWtSt+cs+7`OL?vTHLcQ z%g#++8+GnhrILjwtUq)4>HbaCCN0_Fe4)T;k7Y&Q=69;s^lrhD@zxC!cfB2AKgYdV zhR@}nfl2$zyc>M8cb>`Ri%$0blJ2l6ZPMDXSgU1kn;dZNI(x_RPp#8St{;@~?SM~% zNpEV+nSM{RXZky<6qj8!QxmsTJo4yW)bfh&PH)Q}_IAX)i4Xhcvw08~GdlcWfei=G zxCPHETV}_jrEjjgxjk+Xv7%ky{da2Dh@SbyC49pAh3TEPtj&FLdbbtn?Ve8^b6VB+ zXRWPcm)(fCUOle$@Hy9Z*V|Qf?1$_VleUyi?lAC2$)4$(dpq?Go8lT%qvQUpN-v%V zWIQW#vGwP^X;15QJ5%=IxFRpNyvV*BHN$mcp~MTz#^qn+c)%&lrADuMRjwCn-DGn6 zipL%|FEpY4n)uQKv5rH;$h%Vqe%a&uchmGw+sn*f zGrv?EJ%e)wFg?d4J-^0&pb2jxrHZmv7Xf8-U<3iAin*uJ@ud5IO9{ocjQUOv_{ zJ(olCXVcT}duFeU{XDh6?R^uU?7Uwg-MwA0Cp(^0yV}*G{MGpjyKczqR_I`M%PwnM zEU9z-N?|+aH<1Gel)RW8e0B29)C+b`Gg41BYJ6!%@S=I|mw($fyz0_8-)YlM^&aIg z;OXosPmZ6M->J)(5?K$rzS`0J>bvH>=M+;}?wNKf=~djdkL$*y4PUtHmbA8O&#mrt zN+%3hd8Bj6>?&4+R+TQ0{o>U5Ny}Yd1QuxK8T6w2xsuMu@87NFc*Uk^?o^w++uF5# z9Cc#c`5#3_=AM&Y^}qqUMi+caZ@BR3@y~$r^X|+Z*VVS)@z|1^6OU%K`uTFeoW^&Y zTEx!v4cYrSXWYznWr|*$D~>`0GW*f8QxT zcA5FMwYxW#f6?C6uBqxypH}Y+bQt~1x%l$;Gv_>eI!?;oxBBsz(xdH8CeP@xwdK|A zZ@dN;uD0pwOz%ZA&#iy;`n1!*r}-R9zUh6^S9<3?>iqr3Kc^S?;ITMY{aoYS8hC%~ zHFLnjPN#P~{PE+`!=vLfc1`J<+LdK)I^lfU0?4lDk#os!t4vJgW$G5Tb zm{V!dr}8>gwX#`#@zM0cee$xm&4|gl2EE$Y zW|@XHOLJ^+(SL(kwA0#{ChcmTX}O}$z_M!!4EZ=RwVCVub8USm*ZsBV$;VeyERQ|; z@v!{MuYRv?6t!`?c(?Zg=ZC-NFRb?{u-B7Xr+>GcHg|jEu4;?C+tnP9_i*WUQ}Z}f z?49>;OuyrIV|&#}FJ0XI>A9I!!^VCakXd%l(p=@}C{)OMfS{Fy!l);YDj|6IDg zvrg_JP4dLI-x;(kZ}s%W#dcnqyZ`ayR}1n~yK(P)xlQ{I^-G*yb4bAcL1}&udNfVc_JjQLW@ua#%p0L7JqYjOa5AS^K^Et2l zuj@tL99ZLWBlXHf7Tu+Z!%r_;(0^$0-tqRc;)`5e5YS@RzM_^ZShU@$&Gi%#b0+i zZl=k1^i-+tUc=VSv+bx}-lN2&C3gqkx$Lo|=dI`Ie|M^$Wf8QrNA;gkE{)6HD$ho> zo;+l1VK>L3vtyPQ>oKI^*&=UBzkkrE*zy9I`Rb=O>c98f3|EWIqZ=J9>rpp-Z+u#0 z7uAGkCxcJaezdRDkbxtMTu2)2qseX6Z13UAd3N1>oU>t)5X zLK8}Omrv`Gd@Q1_(~U2Ka}U~*bMCK=70eqIVM}iw-{{+C_b~qj_pe^=IALjzuo`u< z4)?R1+N9QTzXm(LRU6bUJ}3EXa?N~49(3+Ks)PBv)RA}Ztj*WJDlvOZ-OIC%pW8jG zbM7WX8n#o{+gx@~n{v*_te<$i+8?$({*%4^oRP83z8;u2Kc#K1DZO7*NLn;AZtM9* zjYe(s8I=E2^(;2WI$_J(Tz6_zJGi3#jA^g8+}?R~SZ4FB7X9A2J#u*MyXtfezm-cT zmp%})X{*DYHp5>$*w}DX+0ym}LVmVO3-G>wJ*MfT!OJTZ{_N%TW=!h16J@euiyW`= zvtZ-YFWzH|zIS+(X<6$^VxBJFZZ>+p+W*}4=3U#Yvh7eZt%J0@<}b_9tpm^3+nT#_ z4^5@Rs_36<^Zo8#Y|74kgL{>3zhq$Sokgx=+sBpIU!ZZ$BdgY9W9DVNUT{5k&pbn_ z*>3)DaOLF)R{Krs)43jz^XSLM`kbhHLXy$l&Rg!WBc{}SgTW~tD_fMwb;I(_knw#C!ZMGbn;BE*V`{f zAO9=U)B59=2fpVkHE&aDYqz7X9=2+g$7AlfVzXwXjU3}$r*WD4p3Ou1H4gHt_34*o zR-qOruAa0%+2KY7_O6E6{EUcN@HS-y^Cs5|75I8=*Sx_`7FbNHIBa8?31K0ck?tug z&Nw|!3H$1LWz>lmd&_Kc8EH9e&_#>QRg0OmifWU$<&#FtV)?WCuZE=mwZSrQ#i=R< z*JrHleJ5xxTNV&ruTEI^(>>=%QCD(mjtTSrnm6=&8=w3?G^1vHJ$&nl{kn^VCU&^( z8poQv>hRm??Vf=}Mwk2Tb1OOEm0BGX(x83I(Uuh~>-PHm%)es)X}PU>XBK?pS=l<{ zXN^#6R`J}I6CYMM*^lk`tV-=#RnN{zE<5;9%+a2Cdio~53R!)B$i>aWzEq63@>p`P zdX(#sSD|~;kC(N}KYwXR$CyFK@}{*c_);^h`@Y?K?2>z2pSxy7fjV)Wht+!UsMzW@ z<|Q@^vYZ}~Yg41;-L^EcV^W8yX-C~o7P#`wYedvumwa7q@_+6)q-c-any~g?zuI?O zpZTumj$!*M`92M;<=eJ$?lJbZH`cz)8?4$Kc4kMv8oN3deRoWC_euUf9V=`q9b@+E z{anjU&-%rjEvxA=b9=re1*aZ7Q+T1{*qO!aYN{mlEqbc5`|Qj4Hpf|3%wMnCME^NA zn!IVUq06v)eG+Xa+Lv_gHf#1&3oCWP`A*lmKCM-9aHC(hb5(L{vUJq^;)_l=OFkA= zI?N0>-2B5br)!6b)QGMaQS)8NxciIF*!=i-!F+D1N2KAjTHy_sO z?)As7CZ=Y4+F$a?Qnfof`mYHMoEp|m|K)!B)RtP;SFYYyc#`YoVGA=VTKTjcf1+9C zwS#(9K4%`2aO?Adl^56Te-K;rb#RlQSTINr3%Gr7RhoVBz=~7;T9WP4?R57`qpFW7 zvbg-{j7b$A_cc4Zq=fD1q$R&L_bjuo!@}JT7WVHd#7t;%rRVk4Hg2spOgA6a$aCP! zL926$1hi5)ad%t&2_dp{9HSH;BJpDOh(E;N1Sb0RI=Y01;oY~sVHqPfO7P1n@R=$_gCd@cX`*C$s{Weu2>n&;BK z1CJaUFUbt%3jQCOHY)IQUcz2!VY^v9dc3*4m$jd?q>uli@CG64UulU#9r$WIqyZSZB=$o zo)tCt#l4#!N}T(3$17uDPT$Nq*ROXz@}tDPiA}0(vb@x@+pKjx*7lEe&Nn#v@Rn1_ z_15J0bndvgMGFn{cOH20xzD-{_s%VJU39(T&Aywe`dGYP)vZ=!#a?H9%R9MOy&hOK z*S)WmKTSI5WYf8wi|ej;M{FA}z1lv&_fpihQ|tOje;;9mpB^bJIfGRNw8LpOs5n;`)4Q z{KWB{#>|`Q`q#_D>t8K)j|_JF8o%q+kG5(3t`_NV-NLL;e9x5$70!Ob6QX7Jzv(K#IbR%oPa4uXCM2G74Wiy3ggR4_ zQQ#LuuNk4hDTwy@Na9LC;h<`xNn3p)YE3On(_Uo^)5P0-Cb3yeNQhDT?29Q`pva!@B96rPNkP1S5;r}?R5$$) z`AH5jap7>>s`bVOs@@RrXCv!Qkv#3ExW^*piir&JBT-1QDZdDJ=ZX&Q{|CCD--He= zS%M=%6eAF$flwMO&AHE0{=;Ufq-y_WASkD{GFO|h2r-c%o2}xvNxG2iq&$lMX!3UR zY!y&)whpnB(Ep)C-W(KfK_jV?m4wFnl6Z5_1m#Vjh7riiOclGdRtq$>M^!;-<>5OH3b2krMvlq^+6N`@XlW5dCPQKErg%8E85 zyG1I=?ca165kMyV)zW;}61k_kl3XNJP;k7~7JG>baNa+DYDvg%8@MeM4z>j_6p+AN z1O6X)L&J|`;pIi3X#j!Yru-v;T3bXaVJo4l4GEOt0$HVpG$n|;9f@P*pBxUS23U%7 z0HQT2zGD&;92^TXRwOm*jIfu4qwduzsSdHp6Q&K~FO$;%m;WZ7G$Hx1weq>{43e7! z7W~n&LoIlN%?t=2@FvcaS2Dv3V1kA_KSY|nl*R^5U*w0}2*LP#q#JYudMWhGPYCS% z!Py1KEbtDkUzP#|Bs~0*D3xAXmkE`8zKrFJa3Hx93Qmp<4&;Ud32`7mBmIQYE=C9{ zDB%n(+!RH=i9%{Pv=A9O*3hk?!31qmm<&O@?hzUu6#%OiBXM{isL>W_ z`~P9@z2mDamjCfUV9&GXoP^$_34#)OFJeO!1yK>CDu$CDNOD3NML@&?a#c{VAvO>d zY={UV_I|CPfC3go#ex;Pfc|FooSm7c1ikljzyJO6dhU(nJ=5LH-nu#}SWk(n#gT%lZlXk*#X&hB!k2)Mjt#wpvfT1Ehar?jAK6wAh9?`3 z+QjWQD)d<(;X8l{67q@+Tl0{i@;A7a|jtRtD<;m6!q~@FAbNcIDcuG?=FXsXla3 z#byRmE$qg586Ht7&AST(y+#OG3kdOuBAn;P;jlXso+c}+$ijCJcvn-WIyt-@f)5+AxSxm7gdEdfFj}G5p^GHJ zy8tE*P{?Ijh4RvPNx8fte8m9858iAww{U!6kzEBY$n`YwNeR)%F`{alaQ`CRvw)IYpQnrP{U?7Hl^rj-=w0+o z;`z$!n&NvOAkl7D#(IZw%ULP2#lG7Sg3k!yiJrbAB=scjJB{ohWCI|!+stbbgv1Al z275X*Q7>PIwm4aI=+02!3r4bGHUquOIE{^v$+4EZLhxbBo)|1@i35+2qEi@AX?BV% zD=ij7zUHZdFYkwRTe!*SoefP2{eh{+F@hd$kCzsM*WL#q_^>K{hX`dELGarn@OcT+ zGMAHERR{qm;-w%Y5T2LkqO8-zGPj#A&IZegTV~|H0#-k7nR<_Lyt!7Cs31rHtRQeN z76jBa{lbNc%fr?6*r# zH&NP4&lG7f??gOq!pqJQI9z7V2kjOgbti%*XR|`1x5;Y12ndboR#tdCtONZQZYOc4 zWsXoOt$_7Wuw9p zJYf_M1^tCg_!A(GsW4O-IY4QaoXZ?A4vB<}9WCUX)>W=~B8)V%9mDOr5~8tUr~x z^*E0uO@AhlrvR}stnmpS%5CWRBF*O#={Hdz*j<$7LqJ^JMab0`c)E*_b23GDk@KvV zV_sSQ5>k=#?Dy#Ro4Bo?*rNLaH&>IL-fyPOBPWT>up9P=;KOd18x!5|wM5R%VwqLs z_8H5GmHKTuDcOqMK7S0U3Bj9!!)-DD0hVaG&sEe_CH->YY5Z15F% zqHph#NT+=6TU9%`O{a990!kB7?TUh2yedxU(gKN^Ff#%jQ7BP(s-;+_Rg(p(P0pD) zahN74_uGI1Vk?**FePIU8xO^?QzV5c!9%fKQq;&3xnEi&3{bW6Jn4EDi`vzw6zP5f z#Kx7?t0X6{DG8GJs>IuJ^agCwCP3E{PK^s8O>xvQ_GXTJ!wP34BP#SC8U85d)s&=b zI=Ic8CCkB^HZ>jiP&R&=D!5n&!zU$PnafOEts=Tt%f!Yqk}z4A)`+~$uMpO+ba$f# z*`7*80g&LyU14RX(l%A`5LNZ;QW%TJGU3ThvHBHEV?&Y-Ir!d{|M9O3)y%u(QBGPr z7!~3gnGfpMEl@#{lwM%gTM1H-7)OGF09s0I#v$f)s`F*`IeijX5O z7f2n5;7`cUfY@uPx~@e2J>SC{O7r0Y=8di=(>!p6;0Ud{?&b_Yj`WbXx#lbsb5KLW z65mo=O&+?D;mM;i2jod32R`IU^eWMEU zL^t*U?kqhC1}7ndA7n(O=aiwX04>sR{0j3ok!^lREaZ_yxG^uy@P}D=!61u4{>p)- zvZMmc7?jfiptAcPHx<}3i0b~e)ltEfM53DbNOe@b1y%YwK~*ow9I%KK!>Ms$Nxq=$ z_$ccbyeUYI6r(V)P`6(%HU(WAc=y}BR{~Q>z?CmoF1nk8!Er{4JXE?V0M3)ACl#`8 z4v?Y5y|h6vKWfOb;t)FmANL`mYaipel;diZLIcH`7K2{M|j)Bsr4Wy3-)lOBCSd_3?AeFhSi?A zSyX^7F5(*)nI-t{T*7ruRAkH+#TOR`I}lz}jC;`CjUo~7|J5vLta1dzl=4?YpXy+k z(FLLsiTD^$Pkf>DR0lq6SMP0N7=|jQn^|4pI{+sSzfhSEpSfM&X~~DOq36w7NTo#H zdY$EKMr@?ecIc?o3i6EySqF;6iA_X~_SeBH>Gw%x4Gmu;f#5$a1a&PwpmVn%luPRNr}8P}X{knPy)R8LLQw5QEXd zsrVQNK5XNepL^O!$WB14LSdE;LgHVDr31Wcux&VJ5kdWZ!X{P?6N(^Yo#@Lmz7|Xv z?*yJSxtp5EKu<6${zWo5t|${6_^^TReB)^bAqC%xW{{~eQApx#aMnutelN6=^BmRQ znkv1DGxix;81Q$1w&KcNPc)XLY>~I^rsQGeLi!{ey#Oko?ZAgj8FWxI3p<^VHvw_UE+N^6xYISVf)JdS9mo}b^dyPA4hVVJ zkf7w3!h{@~2Cs@r9-Le=#5V05M`hY&%&cGhe_pxq{#&xFx}^{P9w1__dg(j|-KpcU zR;X6yIq)G5FAl-KOq-$AZvzhr8R~>csZ^<86BJmQW=!K#ipAP`66A*I-E|ytBTVz z6QWIpz61oe%T;{{!j@Z91aGO9XQC+>g7u2L?yehRciS}diACDd@;FX>l;NHALL_&p zb^*S+CD5|^A#oT`$jSHM8ygCo3|Oa>O>D&vDLXvj1?BZELqe-!%JLFWn5c?3w-Qw( zj+evD5ODH@EXCA#duze*3mr8)X{t%C^#7+{0sSHCpl2J^_BB}pd~0>K10VLsyKO^k zL4~!5k?BW;$d6e6Ad!0Q1OjUlr&%o#SdkdX1-qs_3)8S7G1BH}f&46y4+NrWO)rkY z_@;_qatv2O)tcc3J9LoXOgH$30F42d@@(2MM3zE6HZk+Ot3yjVv4rT09W~0%^Z%!= zw59@+Nx-2C)k9z6U<}+FWi4=Czr=wLJN3hE@Gtm{KN>rgkh$HNF{V=qY1u;{*r|j( zE)nchLZZ&8DbB+{;rK;}y1MS-ZAI2}`Vsr^Fa za&Nkskm0asS%a{mhgXojr5I2Lj!DGeoiiZB53gM2sH6VAuLE9Sac8dQ8|CJHnKgFc zdG<7_5RsbKwc1oq`5zf;37n3~c>14t&`9hff!+hg}XMSwqEOfn5$GX~V>z{7xc|0%C25N~4c? zGHySWcitH;o)*GuOI{K^oO!Aocx%N=unq_us5}0sme%e@tesj3I#^i=-iYLF#cyYZ zQd%aGr0DA%)$c##a`NauL$&u=v@Ek_x%x&Y3#!-!MkAGqe816w5BdJ+2gRa^*USoHd#|K`)WW?|=~Z zX zYc_U-+!^DMuJdJ@p)ldtIlye|C`~Mz5fz1~ub^93=x=k7P3h(P_nAqMm-D-+V;9{6wotygBvu z6HSPFiTe17BBfrUzJ8)7d_?{HM8#9RIraAwwE}-}>+zv#;T?Bi9`66yF3|PN-K+Y4 zH2?x6*SLTgTvaZXMc7L-@4Ykw=&W_%#$57bA~~|X)|`L(Zz)th z{m54xz0OEfTvi4pYMlcgO4RNdf>SynQP2=Uapg>419A?2l%eQ}MlC_n=Rz+6HLO(1yHFquxfJV_E9=>!j zBZ>~P%5%%A;+gTviqcBBDdLii+Lwg*AnQp-U0LIQDjfe*l!EC34#WIS(N7zrVL#ar z+?zb@z=v}6_!Z1Y6*d|4NU)knau>1^k|aq=7LnBZmyaYVT14`spCl<;L{fOAFPEfn z5lN$~d?ZQfB9dqQBuViilH#j{ z&GSG*+twtFm-A)U`f0qZZ*!fW#>@N70W@CbU$n%ZkC*#hulLh<+5ds0IofUuiVNWd zJ=hA^b2B(|s3-&t%yV>9|He?t(Pjn%Q^#fp?r*sDE1p#CsY6$<27CCD^xI~yK0=fO z9fX%s!1!;D)82M~21mx_H;cyVTzLD%OL50i9y{hxkSb+0HNDBQCr!B zF`J0yEEAJ`J1-9tw>zrg;1{=sQXqb=`O(`Qy~Rgk(YMEx#lT zn@xgmTG z&@&FMZi~`tt>F_5GgPP^R{>%V2h30*r0v5j8>)6598JS14xzQy3iAh;l^D4Z5IS9n zVw4+nJ}NA!l*vzjgvHAU9%Wo}9V4tj+Mcx&7%PxxJt`E)Jq`xBPfl7aDt5N=DT2Oi z^{2*Ac9F~!IsK^vABxL48<^9ElZ0#s#KlQMraZ=+G>s)BW20y+8F6f_@a)#UIl&E% zKQ6Y%pE>Yaqrbrcd*8rJ_2PjYkpJ?L-H zsZWU>`~n@P5)H~w)%F)z=yRy^pY6u*d9VIec96qUuk?RsI>dJ^JRrUP-t@+!GBwuzdj~#jSLSP;+7t2yeTq33E%I)hi$0;mXL7r zsj!*39WJ|U7Csd}I`AZhcapSIrT3N}?*E}M@)y`%)bIAZacAERf6vTx6{deS!Zbk^ zg-rk1fe$Nu;@cjk6S5T$%XGY4K)}*>Sm`%2C?UhQir%1WCOC8ANqW-Y2T{@TA^sN6 zp`*8l_;Tkjj%wiz)|6n2@tX{|-&Rfb`ZuGzT`4kG@N8k?umc|GcHlz>EP78Ek2T&A zGshuco1vSay2qDg;9Waw_LxQPcvY4pb;4K|jL@Aq&TK95W| zSrxX{^=g71qBaKp}M(t5Y;un$@RVsEQ^?jF(z>Fd%98 zkSV#J3%RasY_I|y{sqs+s*cD4h9bCrP%i7g42eiRE;@YBl;}F{V>;vTM#%oJ#eM^a zF(DUyBjoKyi8TC{hq3Vtqcj`7=WbI+nEJp2U}e}TNqe*1{r6gp_ zK{1x1$ypR!>(MoUi0(Kf8j+SH!q|u|swIC4_H2`doc)(b-^T8?%VY3#>J0GahNtO^ zz;hb-5QAk^jNMmZ9;E9NQLTJRkR9GS33#PABth7-GywER}XMATAA_kgkry z61y8Zi;&y2L!L)G8k4-LrlUrO9X|hUr1hO4|7Z-%K{wV}u#;RU)7OCssIi6*`Mf+T z+E!O0Bhmy?Pa+2;QePtXri(NUBr*o>gwknVLy6Rcd$NQer>JhZ^#rF#tb@+yv*T4l ztnaSRa;2MS@F+~)-Y^o3YmHl!<-hQ;AY zKdJ^?lOp8eCJr4eo5OTM+BfAi8V}P6c?S^d`)dx<37G?T1)M}NDR>8;nu)FYhn5a9GW2p&=%xLbPD?lf?^*f+C}hpa{pxOLKfAJAj1v z7M<>jfJr6Y)z;ztSOn_=f#J%`#Y3VQf0V=a@^rA+V(c|P*-`Brb|MW;D>b1xMU_7S zoQy*>DuT}C-J`-eMvRJMv^vp_3U&qH|Ej)|Syl55lWOarGc-PbK1kL8he?Kp54$qA z6L*904XSfcv+D*Xmwf#dH^q{-6Co&7*2z_jb|nVfW4%Ai5WAxP;U{R?LEE!zJW4 ziQFNPjsr!S3|Y=PKwO?3l-r5N2?RTlkXHqwYNAR{Q2z0p2p~`w2įj%F{pgRSm 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

    d1 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

    SeerMnjy>a4pubL<{7nlssI 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 h51gbJexYrF^EezA*-K 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 V6moJ}C9NAXkO=eSI`xVF{{Z?I)+Yb} literal 0 HcmV?d00001 diff --git a/tracking and telemetry/App.config b/tracking and telemetry/App.config new file mode 100644 index 0000000..74ade9d --- /dev/null +++ b/tracking and telemetry/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/tracking and telemetry/Program.cs b/tracking and telemetry/Program.cs new file mode 100644 index 0000000..a7bfd48 --- /dev/null +++ b/tracking and telemetry/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SimpleExample +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new simpleexample()); + } + } +} diff --git a/tracking and telemetry/Properties/AssemblyInfo.cs b/tracking and telemetry/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c04fcb9 --- /dev/null +++ b/tracking and telemetry/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SimpleExample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SimpleExample")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f554b77a-f3e2-407d-a9ce-299581e6c7b9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tracking and telemetry/Properties/Resources.Designer.cs b/tracking and telemetry/Properties/Resources.Designer.cs new file mode 100644 index 0000000..8495c2c --- /dev/null +++ b/tracking and telemetry/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SimpleExample.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimpleExample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/tracking and telemetry/Properties/Resources.resx b/tracking and telemetry/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/tracking and telemetry/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/tracking and telemetry/Properties/Settings.Designer.cs b/tracking and telemetry/Properties/Settings.Designer.cs new file mode 100644 index 0000000..172bf05 --- /dev/null +++ b/tracking and telemetry/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SimpleExample.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/tracking and telemetry/Properties/Settings.settings b/tracking and telemetry/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/tracking and telemetry/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tracking and telemetry/SimpleExample.csproj b/tracking and telemetry/SimpleExample.csproj new file mode 100644 index 0000000..190d44b --- /dev/null +++ b/tracking and telemetry/SimpleExample.csproj @@ -0,0 +1,98 @@ + + + + + Debug + AnyCPU + {92360E56-A293-436C-8A29-0D0C37AF50A4} + Exe + Properties + SimpleExample + SimpleExample + v4.6.1 + 512 + + + + AnyCPU + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + packages\log4net.2.0.8\lib\net45-full\log4net.dll + + + + + + + + + + Form + + + simpleexample.cs + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + simpleexample.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {20296734-5f3c-4593-a0d5-dd20b440b13a} + MAVLink + + + + + \ No newline at end of file diff --git a/tracking and telemetry/SimpleExample.sln b/tracking and telemetry/SimpleExample.sln new file mode 100644 index 0000000..c9983c6 --- /dev/null +++ b/tracking and telemetry/SimpleExample.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.30501.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleExample", "SimpleExample.csproj", "{92360E56-A293-436C-8A29-0D0C37AF50A4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MAVLink", "..\Mavlink\MAVLink.csproj", "{20296734-5F3C-4593-A0D5-DD20B440B13A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {92360E56-A293-436C-8A29-0D0C37AF50A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92360E56-A293-436C-8A29-0D0C37AF50A4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92360E56-A293-436C-8A29-0D0C37AF50A4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92360E56-A293-436C-8A29-0D0C37AF50A4}.Release|Any CPU.Build.0 = Release|Any CPU + {20296734-5F3C-4593-A0D5-DD20B440B13A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20296734-5F3C-4593-A0D5-DD20B440B13A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20296734-5F3C-4593-A0D5-DD20B440B13A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20296734-5F3C-4593-A0D5-DD20B440B13A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tracking and telemetry/bin/Debug/MAVLink.dll b/tracking and telemetry/bin/Debug/MAVLink.dll new file mode 100644 index 0000000000000000000000000000000000000000..c630968dc7240650b96487e7b3d4b1d69a75d166 GIT binary patch literal 346112 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

    2=8L7A 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/bin/Debug/MAVLink.pdb b/tracking and telemetry/bin/Debug/MAVLink.pdb new file mode 100644 index 0000000000000000000000000000000000000000..c3d72e5a447fb5d53b705c7a7ae32604689e17a7 GIT binary patch literal 28700 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/bin/Debug/SimpleExample.exe b/tracking and telemetry/bin/Debug/SimpleExample.exe new file mode 100644 index 0000000000000000000000000000000000000000..986534d8e6ec9def0a8fccc765e51442c4b6e921 GIT binary patch literal 15360 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/bin/Debug/SimpleExample.exe.config b/tracking and telemetry/bin/Debug/SimpleExample.exe.config new file mode 100644 index 0000000..74ade9d --- /dev/null +++ b/tracking and telemetry/bin/Debug/SimpleExample.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/tracking and telemetry/bin/Debug/SimpleExample.pdb b/tracking and telemetry/bin/Debug/SimpleExample.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2459767974c3206cfd9bf862dbd438fa1b85752a GIT binary patch literal 3708 zcmai1du)@}6+id-i~Ttcu}xyir z)A_$?XsKzR`e`naeM9L>PN$nptJXu#4)6mC0R@1k0c zO+c*_)M^v-1|X;iIu1C^kR|8>;MZA_J_Ok8HhR;cP_?Si5`YdEN4T!3I1KiDWsZXW z2@SKI0@kPR=mGGte}X;?+J--Axpe^Mq-h6ut1X&$d>`~>OFj#9HhB3KZ3n#`bRK90 zCpfJ0j$5<}8dpNS7VQLGkNI3c7UZ)n`CnSJ3-nCP;{ZGOITrsli_Qf-g86KK1AMo| zXZ>mh{a4%;)04qZf|s!9e9#YK-iS3P_&#etT!1Zi)2{!ab6{~=eh%a(Wze4>d2?Y= znqLgQ8y2K#&J9lny*PuOg!y!U7ks~Ej|=qV44N-C4;E+geHk?8Ujgh*^S6U8%%C|> z`M1f$2moxa0JalXST=FJxTp)5s1qP50Gvg$fQf`Ah z@Kkuk@(nDA@jOmWl@eFGps0hZG>d-g;L2MDi|5I0z{R$0(Aa1*Fh5~C0bHnD1b$i} z0i0z3!+2?<9clo0pSsP&p95ELu$PC*ztLE?b!&gDC)}^sP`GEue2QzsCR#v|a3W0G zyQw#-^+zb8g(LmZL5-y-p$!bNBz5oX?bYHmghefZl>~(o3F_|KMH;7|`E$QN``|fm zUeoyFyK?s*`=S3%_nM`@aQxnTI7AoQe;{9cwR7vvcaL0XK6@^3bohGbPgl|MSC+|G z>&d+}e`s$_UL|`dsY7FNY6vcm_4jK%iD+z454LE7T0Gk0n_vwL#Rj#(#Ohc?>vvhJ zE8s|OdL9q&LPK?1WNUk{BNk8SY0*{D!C|k(>(qKJJ!$S*Z6x8hxNEn^5fK~}TpQMR z==s+2hUj1a(3*!V;`M- zePi*JM@x$CJ_U9}`=I&W$MpoWi1ot+_EH+57LV zXKU+_wN&qQ=1`tQ!B10AH&wYntB~2!MGX%juN~yC=3dC{)h|_^C7ZENl%p#bC@P*z zbXMl(OAvS*B+XKj1+-Ao6w0%s?@hC#bb<no7tRdemM znX2=lv|XV9RkM27FKCgSJAslqY^IX*(jt|nJMjn=QoWxm9o5M%!hFd_DA=+sB>96Xysc2PAtr9|WG zgPr!6pp{asNO{NYWYlm_BIsPgI0;SlQuUBq z;YWsDV%O}riaMzlQi~m-OU25(+EOz(ELOm~gffg6XqLNE5r)*g%;j`KSbU<06wRiI zQJ)-rS&nV?3u*i+0-uEO4pg^E6_162{#qn~8WdzqiGpX@E%EMb%BN|3Z{E~(G_yg- zEZn@6bppX)H8#Rm1C*kseklRl3vI~B8VKL82*^g2QRLC=riJ0_Eph+yZ zkrNY<$Mec3SF>>|6)K`Gmg6)uJ(}>67x9V379zz}DrS_+C}gF$>6{spQc)v}e~8f! z@|kf`dqm2H`$pm?9Qr5_Kt}5+6~*jrmNz?R40ET5WvPc{kXPyf)Ae4Iw1ntE}7mmMsj5eN$L?34ap7L6!5@PZbiyR>r8D z5v;dnCc|9Awj6X-phj*xW_h5HbIj)|l6s-CJL0jvczEERZ@~B?fr`3QZ#=Pn%GJ7O zp44J@a=u-mI8HCQ|Fhhw%KnkVdure3uRGzvjg@h)!96+HGP7`{5PbTO7EeSq-Pft< zv7PZAO%G*WFODxmA^(G69GdJji)5!y&^$#gpD2<_sg`jPPf3~2?}mKr MdEVnQ4$jB$A5BXvBme*a literal 0 HcmV?d00001 diff --git a/tracking and telemetry/bin/Debug/log4net.dll b/tracking and telemetry/bin/Debug/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..93fb476ce09698c5b42da2596d74de0cfdbd1c81 GIT binary patch literal 276480 zcmce<34k0`wKrZ~W)i~t{Qd*! zx^?co=bn4+x#ymH?ozKf^)}0~EX&2ezyIB`K7%L!R?F}1f3_id+TcUetWV^=J@+$h z$9#M4Nf&Oa4P6?Aua3^XWa!+pH*XHN44rfSP_%XP(5B5phaLCIp-aN^&R^Ks>F;e& zAAh)I9ny#_^>JxGvh2C}w!CF61XWpu-f|4WLkOQmO06yl+e$Y90%hPHgaH5C zu`cSh`VCCV|C>+qN)Z0`1>RE_AYPAw34hyMs{^3Fu5+zf6QXweI+Tzu$+CDqGL>QB zmh-RJg7-TrC>L>3SJ0jQ8v<1eqgr$>fut>_adA>x#;~ncFO1H=I7C9yYJq0*z*;sb z-5N%x|1Kq8@kiQhtKIt1<89WgD{U($P|NzwyW6Z^S1s%KA)qy|-94Te>-p1Xd)~ga z_~yoqvu^m&{0*=Amq%Cs=7pZ6`NPjX{odpMw8ZtY(S1XoT>tg?#lO7q%fG(koi9AI zY1Vb`x&M$ipZK5qZ(MuDpI%sY+QQBUU)S~Em9IPVoKIZ7pY!>*=cfJT@yCyUXup%5 z`^mR|_x0P(yZe@hYj%98?8VvScwp9(YNR4yRBe9pmC}N zE%soR^?DRDl0kN68~446mkE|hVOo}L?X$r0O<5?@Eu#o@TP;%p9zmpD$dCZbUN}YB zrrw=)IDm@Tr3Ts1QYz?`I@;FUy|ml`@a-nxLcI&cygk38yG`n$xGMAP5KQ!k0AB_?jw4JboJeBEoIEPQvKSUSv#(RB(?GM1_h0~ec8qeBA$@a{+ zpQ(7+m_Grzvf7$^w$-};WZMYuf4OQ68`NHNZIk|Sqy(=D#ZG&EkK65}D=`11D)8*P zS$nNR`?GiPMXTZ5vZ)4%@_nbLz1ZW8%r3MSyzO~AqqWO=nQ%FxhYMb5eUDf03hlRS zTJp3PLdg8$=w7Ds1GcyGQs4|$0vsNIpDhrXfpE4kq{C1*&}Lnloy?GYu97LZh9h8t z@Z<>VH4nr*Il{X3YfYZ)e8PfqwX7b<$5D7fSPJ0%L*R2b6XjLyV%ZL-A>@yYcushR zYkB!h--g4%JQ4h?X0k>)i{)N_B;$o=B8l%+pD3Y=0k3PJ2GAx}!Kvn>qd|4;Kvd}} zyH4S)7Hr#@?>B(P^%^41cAYOyxDj~J4fs+PJOzWtwtHK1T&A6_Hy8og)lNrWg9Ugi zm&%^fVT;a2rz$x4V#mnzOm@3(dm?4o()x~U22JtH@)O#Zs;Kl_R5}snH-heo8bO4) zh!Q~8z+%TbA5YYvVAsJ?x7uX~2ce?1Viqcg5cGM8L5IG0;Fw0EYjW42NPN!wCw10=8C`x#3Q5 z2ij$h7p_KZakNk49XEUqDI7061mJQDaKf8kEc>PMnw{XO%IY>MPw1RdFdwv+Z?}gi zA`M87YY+YX?|+}(=wUDbfoxf*Qc+%LSJhM!fa+ofQC$)M018L}5&)n(21sC~9WDmS zp<__N7u(94ol1u-FCi4aSJtvMjJ%{lu$w>#?e3KTDTdI_kQTP(Q{W?1;Y9r~9eG#W zk2t%|VECV&Sf_veo7(>!^wSNXntyhH zszCHup-Q0KuMQctvzLvI5TI&av;sjH8l@v>vz11>A;4_6+Rs5mgIp@xz50Y?7#2%^ zo(YlnMOK-rk~0_qD5Dx>C+MZRA(u-Ry;>aMG!P%#bW}XP*pk{m5A`0;HX`? znc6g;DLOlZi(a`UT3XTxe<2N2xljwQPP4%QX=8E^k}s_ZQuy?g6dR+H$YupZQ8bkj z5Zsa%-ObR@ku7>VvTR9WWRA)}OU~9dLnrT9+-|)B6@&gLxSO ziE#s7TCcVCikT8#gEinaIe@W9vVOx3_GT+b53&^z3qA!$>SHY*wZo93(FYpsVsH!~ zG%EV>Dt$)+0L+L15&!^$hNh4J0I(|*AOQd{t}8$S0AO5GfCK=537`N808oqp5&&Q@ z21oz^SPz;-0^4nl=dji=q<0O)8;G6XOZ-Cd(V#snd zV3m{X0NnS`qVfz62Tw{1SB(v!xad6&yMn}*Qt>xk2GuMod!#+s8yYHOR1y@aU&?{8(w%+1!q*AM(SsPDJWX;m4t% zW5sva#{vdJ@X?PhM(N~~zv4lOAu~b& z$&74*F_hVk`keq+cp`q37*^l!$&Sn_WJB};e@hMobY#8oLLj6)wFyteorJjR)8l=G z>{cJu>d6&o2j!F(Uid0R4;M19x-x}K0sUdgt>cXpv$SW}U+l?`98&NL z`RzTfjSh%npt`mBH>2)__UI2?SP~YrYQYYnle}utwEk@>G;kQVw0{onwgfqs)` zxEg7Sqtl$|hbZ_21(xmLV5DIu@~a00r{bZI@H7NrVj%fnncNFc2cR4cx3k|cPjn=L z!o1q%Hp{z8EGDmVls-*q2RPAtkPM}P30|--dQ?7xVN#;20|p)AqA#|h%aony7tA_# z1`DP!RiSWgSmT{X zs*F+79eI+qPV3=Vi&2jr;SD6%tL$TlI*Ua0_+vxVdEZ8HUhoFYQK5kpby<0mwL1H( z9^zWFGfOS868W|>hg(peS}nd(bBASX*oKY zzbJ!!es4U{Dky6mu=o<^1^YwzD_OJ-^OeD2c`mc-#Oj1cpa3AC{`oEP7bzP~FbJx^ zAWb3@#Uqh!E3^}AtV(Al1ofT{deHH!QCw+svlqP@)Pxt|t=j2Dm&7lXB9s%;^lyl2 z1ipskjUYWHe$DjP#xF_wQcL<(p5&I1)*o5y6~l{xXV71mkAs~{r%4h+*hoh@hcd3x z5nO^?Ubq>*WiLRN^Ety=7aPQ^a(EP(GDk(3!gw%QN2!&72r}xUAPFGNAu&J#0IZ1t z60nrVy=|5S^98zT3piMVctR+nH?Zmv!o!+vXd9AmEG~A6Blh5dd2et|X1!f!N$bNJ zlX-&&gh0SRz$lh!q7*}EV{sJKzjXrQeg)q-0X$Q|Z=V33qu_fdfCsx2{{D&ZA%%Zr zB7C*NKc2w7!Aq2U7`dxZjmDwm6?i7kb+(Lj0<;6L$Sa?0W19OQ@*BTG?GuEaXq3%h z*UdI0vvD}F9BY713U*x#3*Ufz%?Nlw-Uh&MId&t$xziH6U1FQrF9WeH3EnOVRvP@h zN&+gfmZS{ZPBDBVQj{N42wpD-hSGX>!)QMG66V=-WU{RreNt#9yQqTLtTEff~C(FV_mqrJYH*_KIU;2dlovN{Mk+^ zc$aX7RPBmy@IWzo(QHkCSJuucp*IrlY>-woP?wA)*f6q{i$?!eQM$C36W&ICdBsKf zsE|v9q?Pkt_!cD6`g-D*!fcGXTLi_Fwn2D0kyO$s#I}%H62V5P8mVz5twl@GluQxM z+I^$|I*Z6|*`&0zTNvpq(h?V&Ra9MVhDWz-TDY$RSE%;TL@ZD)Iiv-8+LP?Gd}%wu z*3)K!XFwP&ecIFr7I=>lZ%5%G<4!DcBs85Zu3ZX|aICd`G)LKiTyJbG`<6}3g1h2^ z0n}1kI0@C#QW{e2x+s~aZbDfw+)e*=LMoqTam{)PTuTgnq{)x;W@I9Tx#bor#_%Sz z({M&7Q2#z&$jJPuBMY~>nMevJ$zSyujaow|(1ga4lBrbq&nj%}+b|%ceU&XLH5x9C z!W~5(7b!(aYf?s>qV%a)Mxf|L*4--Fp9xDFMocgEo#GPL@kWQEMdM#0!&c*HyxM&YXml*2sDgY2Q>?S=5>;o6l1yEOl~C}5e|DYeG?nCAn2&x91{!zq ze8~uV+b=G7fh)0>4eua7VZUkb9LBjzQXMB z%W(EFR&XaTZ(_bU=AZbIpp+(97+sPFy>%eCYFFVThiM5zlC;FG@}%J~0P%lJ1e+vz zc`IMiX?GQlbKgBN!8wiIG1HW>L zF4K%%-Uh|UwT{YO%_Mf6*qrd^Kn%Sc#P-MyDGcO8aY7AW*N&+#%xoU=CTYCRkLI4X!-Ge zQ=88KPR{#uS?f;j2=BO9_o^~!6i^CKv$fJW?J?h`^mch=Yy$qHR^q1xc>+woG8Ktez zUMzUjz&^0nF9NlSvXH4ja!CCcd{S<)U(&GivwmlyLPM;dSqmcJGWF$>2YFJ-25)42 zN4x-9+V_JOKxY6Q?dNSTGej?Q4LaIyummlq6k?!6c0z)i5JW?8F4B*(=Ax|rn*oF? zvN+gzw^thU@AkHlGAg4>_~ay80sw4|0TRFzjZwH$a#k~+~V-SwzRaMQ2tKlk09wzZ_ zdRRcsV)4Igx6y`t@{2fxUlIU-NCY5(wVHxcq~KQ2!8W(8lh6+A7n&L?V1~HckYZ%9 zLUly()!U0@k#v$y^X3JxYtYUtyV5QNP^^Azdh8WReeB?NB&50HH!dSIayqO_8(Sqf zz~JQw!f*&Yc!yKfV+yH_1W-NZ7Jvi*kc?t3usG9k0msZx6G{L87>f#!001y16d(cm zcSm3+&r9_MW^G+mY7kWPd*Sw-PD;h8ixmT*E4TyogBu*ZO)4q01$P3NAMYr*+^%7k zDJmDB&$3Fgq*7TwhJoLmt*&2m{bDo-p6n>JLroJCLjBQk3Yr0LaQn`I^o=(5%_73UgE@Tdts+h? zCoAZOZ^JM2=m6$k#04V_{g<-rJ5k?sxDKC$WeC6QDVeRDELC!u_wwnFtj%nNR&49Y zRx=rKv|$`tk_}e_UvYFn7F(i5=^b`+{>Xr-{e0ldHh09CWqn3kU zdPq_pl9X3T8b7YbtPPpo(oyIrM&AK3I|?0;Aqpl!{ZXMyKJULH_-2td zUWci+^&Zk@n*Nv8dB?RK$F&paN%3pJ)TM6=ZK?W8T;A#(NrFD-(IU2>8ydBTy8>O@$0FL;J-E%woVczUS2>|5)TeQTP^3x*Jr z>|Xn+GH?_2>A@w(pU?Ktz>M!=fEvQFGz;MwG7+ zx^N2>h?N}OFA78~i`EU+C}rIiTgIv^s8_^A`y5n@+CQ>%UV+6U1=>)G|4xZHWm`Iu+ z-io6sv{vD7g)^kTdu``bIMTv5%G-Q^GV zD1V!^fQ92vOR5Z+5=qA}yqZ&B(f(^=wLUv5rlU>f@hLoWQ+O)9*z`XYBJB%(R(5t1 z&+h4=CYs2V$@I)oeIk2IUIC&4${qI79>?5k5(}aYIk6Ej`XHKiN2Y`giT%;%B|O8u z3C2p>j?B#HivkGVO$|0PoQCn77NwTS`ue`L1~kjw6YilzxDZ^AW$DVnPzWj6>~Mnj zF!{LObmx23nJQgBLMcwv+hc~M;Eh1Q-Ta;LZhjeECGEh?q+55NoQVwFed5UOlRNY+ zCZ1bRxF3pJP)NR>nQ%l#;g=B|6RZJCOxKby-RtbtA&y;O3NNtQNeDM6h(<_;Q;jseoL|9(Y>Nxk2qaw)Jak+W%<#+c@p=)#+_M`Fbqu2%)6*UeF$% z0PN^RY1<;$moSWp`@ufN&gXfF9%X+n?|?)67SbHN4+xxUSM)*fC;AzFYVQZ+Dp*T5 zF(JnZk21n`g?_pSXze<@Bd+7NPjjcWhaW(4s1`5$7X$>UhdH{(dFU?ld{FXu;fL@P zCpF6oYa|&v9kmRShaK@}#_vg);fIlnTOA~wkP&<&4HELgj}o*hp*6gZ?@RPO{1{)b z@Sd(tct3$ycuxVt2M9x#`8c0&zNF&Z_V5!^{=nHY=W{M7m)?0y8hE@rPO?D*kRz-HNK%%fY z9(FpxBgl`L>7#g5GhTpU*dKPQPX9>Tth|%yZ?Am`kdE{|x2)_Tv$2b=d|=E2UEA03 zdqNr5PDRN{kFm{qc3at*Nj(=M8FX^HoIw#AQtXba*hX+`x#J6)DtdeMXFLmM- z`1QgsBWv)l_>qaG?4J`G5|u7k3#fljM3WOqP*>hFOm@i=8wv0qSba5_$W3f-Ml_Tl zTwd&f;2-JQh^N}NZvnh|JT?l}C1IWEN`X+yC>UIXj4zx-ux8i=)pnhk)dr+>JFjdl zjA>^~OuM8?Q*7uvAf^v|o1xTTGXHQkr3X#IlQha(#Nf zj_a4_Nlw}i@T|F&)%py-g0>n)AGr%abT&Q|d1a|SL#m4kMiQ1%yr^GP)9^@NS^~z< z_QtQlR9M&7z9_V6d3)JXL~(RcT-XLv7|990ibBe1ln3+~l&lZ^-RI+(W#18eRqXf{ z30#RfNB1Lf^hxIU8t_C9w!S{x^6J|~ul98$Yp~#!G9M*|E?5rbuNW@%7%qJS>7gek z<(OTJbHp->C#Zy^a_#|L#Pfr#^Y1!bQ8H!abMk6mtak?IYJbF9pJc#VAD>S63CswG z%ag!n2~f&iYs%f-8X%D+Yk+)-@xP2UK+LVAZp}47!J1kF{*mO2KG$6LSMy+2k?q%a{M~0 zJi9#8o^z_Ro+BY_3T*@lK%u;r3MF3Gg<%l4Aj~e93lo;w=u6ofb)l}@#lB@`;=W~h zqLGO*X=LWV6#175FPH?2mY0BcT(o?Q&*0zi8|P}S%0hs-l^MID9s;i_`Aqm3JcFG` zoC!Z|K%XS&apu>i?ZAeq&3F}@T<=;J`yEJByluD++ei1bGXUX+nIT3){Dj4!@eCjy zqngBZth5pv$T{15g*i^iWSl!1nGD!m98gz{UBme-$cm+rR0B8dRNZ`jt(1Nd_2{7rr92zFN5kIx> zf|9E=`2@$8WCYI!FsH<1fcGF2u(WTqlx9iJrhEf-r#%4ZaU_ZpuB-D5$hlD6iQWjDggkX zAzYbrQ->_4%odkq9h_r^rawJ88YJlcLtPibwuR^vl7&M>dALxXLJ7h5@v{Rfsc)Bv z8Irf7+fGN$jJVLf!z`)Fu0_lhq-@Xtm7_G&Vj3zJ{{KjZ6b~}UDe1=&004SV0TKWJ zic|p-Q2z!Tl=Owi{@36s@E;TFFMt_ltA6kUfQn0S{D}c&?b*@%e!4{ok^P-b{vM8q ze*}Mnr-8e2r7ce>o&YWW+~^u9o{&`Wow;IkH;d1einuSrO*LW8v~Nz^x2L_kJsoQr zIH$|W+Q5(ipw~Lqen3h2G2g?V<5$mJUWfKxN!|(XjReakpzw!Ck4fNjNbBJwqa8et zQ1~>U!{aC9wZEyy4#$n7?~!OMc1ww};JO0~-iu}sIwQs99a#7lNz97pE>mhc9@WmU zti_A16F7H7-@@)w+A2x~b~Xq#;WMBChr)g&wa~R2+9C&t43MGKe)#uT_3&9Ft&QVH zQe%-<8zUY2TpT;TB0imWD9F}?EnQ3qm&G-l_MyMj5P?a1O#7-;)(X=8B8F6S{@92_ z2ZaiF5)|1(whg!K4;hT^M>)ZdSpN6<9z4(BID#~4(6d$4B>({NN$-#VtPo-~RtVQ2 z-i&^LaSv@NB^%rDH$WHs7C#s^h=~R_pSr^)Kaz36uc0dOp0Eyxog4}3@s>jZEbQ3` ze+;q;-r#|HUZ#MPR8SMVU1V@o49e)yAuOE#E9#^#BNt_{<>X={=se^st=Gd-u$IlKgVHL98u)&NLT!(xtH8z z2hXCiSm$4bg2SKS2i=}RoXfQealzFr2hYHj5#y&~ADb-h8Yi@D;rJ%Sx6mrpg;=Z$ zt#ZvB9U|BTm28{>Zi=>b$Sm;E{4GN}@!zRww$`w8gN_EZB-*7qpW2T6NsLyLXA zJh89;8+l+9|G%@Z$L->hc6+ci+7&IBiJ|^%{HT9fcE`^Kyhiwk5_n>e|4%Hc5{M1* zW9?Gy-_alq3~lHRu(?Ih{~9Nj0Cl=+q4D?+Ivv)QSNkb);f&hDEbdwSggpS*JE6IB zFM(ZWUN86=z*`7y{EbMt58V|XCs}U?eRWvxUEwIM`AS=Nh!V3l8Q})&ROT>+6MoM>WQ=Jxps- zoRvDWkGrH;Nv^dSS%k04++PHL^GNLXQoB_66&()*4I8sAd+a|^cEe?G$g=LSE^1^L z?rZpb%xL8KC^b6t(W#GVd<6TW)H3IvXm9z$%@>H^J~ci=n4|O*G0Y3Ea$wUl#!qWm zvt}t>P=9SmAnH#70FW>NNC1Fr43Gc-q)}2xV6A;MpE_v%7fOXo2rDs!l`dKzd=^%v z)QZZN)smbN0Du*QJaMjfA!@Ojvgv5GCC>K_cL7Ih@N6a5&pA)9IB6876dS^nqAX4) z(2_vQG3PW<@@isH`t+C_2>?LW3Vjl2t{y!PSC_6HVFp#QA#qM{BpaaldK6zdUfc`% z4iWt#?Exv1_P`7f(pV?e^m&roVHKEo!i@qD{00f&-t-#nc%vg(o^|YR^i)i6 zIS-4kv)V`<((PD*CRmE+mOr33hCc(Y=+Y|P+~&186g5mipe3jLiKI~NRq z)&OIZPdlQrf3c^1q+DzmjY+)J7`C>`Z_(OxjjjiCK70<8#o^Nb*ojx1j8|>q6-P6O3wy|V%HRrg9t>a2 zcEJWI+oK>ziElGGeH^U#B#FO%B^V9c_AAA2+)ZgeC!`0 zlhw8|EO;`r(pEN7gFa$(#>#6Yn5b^fBqugAYz7V{)tuwWbp|8Y#X-yK)Q#@LZ>qYs8w{aRow#s|Ewk$NLKMg5%D%V-j)A2) zJ12@~WL~Vc5=a;FG0kFhSV<%7Gv+z^U@^)K(L8T2=??X|`i70Mi5ws@-YC-E+$b_W zdstiI6y%sFR>@rMW7hU{ZL>cD(V^dc8E8KeZP4dChBcK;M);M_h?Wg8NciYiqlFAM zN`_#)kK6aSwRxBhc*@&}z;P7Yv2v^g(Q`v zLwGb>x8w-B?>Fqu$XEj2_D5ebJcqjsoPJ8*2C%(7bs*r~kP}sdm1)^Z9u*NCU}ws> zCn=v9Samt(UpxR$op=*ueIL-Qb_ZA67NPD9O0pULHmM+2&PE4K1UxZCM3v2B7Mdft z6BWOGO9!G~f;7$8R3qlz1K^p;fEmGlOtFDt<9@%n$-H2Nm7W)sUL%I40C zvQt5YUx5mj@*`_aBI(*H?@imO0}>+x5~uqUBRlPEE*J*$M7UKKjou%#UGhn^F}U`$ zK^&Z1Rf#C-&Q36jI^`F59z*`AvAW`JGSCeI5Mb1$s1s}joQyIj1FZ#@Qs zGt$3zLad>I{kaVbfi`a5$epS-E@u||T%>zQZR;T``^6akVQbY3)>^h1{WCux^YN#> zPig%x6qA}p$z1WK4K_2WtvMQ4X6B5;W3?9EHyJX z!}>f^7ne-K9v$Mwh9EvB^;PP+O^~JIMAwnh6=&epWIvG88PyfWE?R6Sv$v#LO${Xd zJ1%j9mMF#hBP-*Kx~kC3WANds8mU_|Levos_4;0E(HCQ+rWy`%-3q3NR+WS>Hl>2X z?Iq_bxy4azu4#fdz(k@tueel#4rU~LtIo(aEhVUpCAn-dCnu+%P&I0zGSzx2uF)w- zqXO1~r>YZWlD6A&+p>-a-yPr0XAbuOZO6ZZ@b7y3gC@7w6j*1smQP30Zu}R3>Hhf_ z2dI+|I}QLeGXZb|5wI6B;_o*H2QU$Qe>v6~_9!0^!5>0Ik}r)2ECQli{lyl{!GF=8xYXR zx(U%E8~-tQF%b@6CntEjty0iKu6X6^cVcD9oLPgF?+!hXfs?OP>qYc7+ScWnK_9|g z30@4fj@M%P^)5Ro;k_}8q$aozgM%{~BLaeBR2<<$#KmRglWD-p8(e*JTcGj==)4xF zyaBowp*$=n0RS+5DL?`M%#Q&Qz)oi=If$VWK(YlfKmq`iV}JwzAn8(+1OTYS00{t4 zjR6t>U||f90088O;E(_S1~3b57FS*MFhG~ z3PmXdj}fH&D4{sRjGP8!Vkt*SEJ{W!K_-^Xrm@9L2zn7qkd_CzAOV!K5Orpltr|ia z7^YD0D4dVBLZ%jDEV0F|vK~D^&q$mq7n}Ok4ts17bK(cPU3q?Ps(TzNyvN}H+~dHs z+z`bcWy=kz4d_1E*t9R7>>3h)tnC*ABme-`!|3g?->6$lEI+Z|a~u7b0s8|F)6mxllzdD>uK`q4V^6j_8{N#eC7>vs+{B^nXU+*?We7ca6X~8LIXbio%eM{q8Gtm4GP$zFH})gkAq;x3ocz-J zjoyrw`bX@CafFm)Q%4>C5LpJ~GrWQ_-P>T8o2Nh<y3x-?xLA*= zt#qkk?X_eUvGGn}$#>8&?-YI$=1ecnl=+J2cF)@XAiYm`hpiM1>NC6y7`RGFBp8$j zK|ojo3jU}n=V1NE0?)v)g6H&zi==kFLglJCf-oDjVS zy_L{`5Pb%lZXyy!t{ZpnEzb+sw`BwC0@wm9^plsV7v5Wv^uA^tr4@f z#PwSCL0An5pDJJ#==X~++GSqWNjbX*X-<(eYz8NUbooYXaLF@{>7bo`*-|oL0`1kV z1V1t1VGRXsM|QAx(V|TBapZ#yqB8m%UV^Jos5A#!0eAR$<1fkn-Ui+&_#&j*Jo-4(~-);$|7icrD4;tC>99!8-LSe)-rzon`Z5Bz&f- zr+{W1k%=ixd&oWojIkE}-^ZG^UtG`SR_Eaw=7mdZkRg5H(xH4;z08yGyN*uXNW?^9 z#Yh0^oJa&9f$c_5DO|UB(L02OV+P!kglfypdut7ZS2Gb-;`K+s!M(X}1eZBf92Vn_ z1Hl_KMyEMz=pOci+hBPFxPg-{HIX~Gf%uIVvo_mIl=o^kLiu)JlgDjHo?bu0RU=Q~ z`tjJ;+;8RPs!pK2$MJV2@HH=o#WvO(wLtdWvk`x4Ql1vlS^JI54Wbj+t$v4aCj2RW zYk!0m$48jt3b(A>5rFTSpy$})jl{}@Ylv$uuVA8}#G#znXL!i5F?}w_C%ua_A>ca*>rX?a!hZJD_MKo@%i}piI9*P;iQALi0(pA9M`yH zOg{{PK?>VHHQFG-Op}SxIXZ3E(~Um&vkgJNj-89F{7S1xo5r%Pu(I3K_Oq;yTe;6! z^9hID#Wt+u&;}|A2&m+!t$>_o?UKL0N;uWZ-%+$YIh-Hw>1eVyYZ#MR;RCA*Lubxk zj!B|vrI+M4xJJC-T3^hye+R3;C7Qb9SZ`kOQD7^$B55^rLAeVn1fP6@sN9$~x5$-O-}ZM7U)&7ah2FvLu&`Eje|Dt(2V z5TlJ%Lrd$%6*iqj_+BrU;{3`=FO;s)gVyB2m!E1<(@fK~%*$C2*NCv(xDzctY{uqM zE4w0Y*65u!nUBIylb|}-JbMn#49b-QC@GxDeBp-_LcRmwU$gP_`#Q{$&y-(`@t#P$1JMmgtRT&ttpAiv6w7TIwdFPT;CZ6qQjB1OzMfg-)eLt>;#TeqT0 z7;ffkz6+Z9mOwb0SF|Z|FIbKN9s?fcM5Z-KPST2Eo6vloJQfFE6;(UMP#ll<*}iy= zqU%-XqV8khup5n&s_?5&%u&~3(=JjGjb29>`)8BI5w|f2PNxq!~ z)@|J%nh13_rTmO=UY&wZwtB%+Bo})p!dH>W)uk|TPDZG>q+4;G0*ET^k;TyqcnMBH zv^L4j`{H#e_}8In--`FF=wZzvZcj7+8?=TFw&3BWt~|k7w9Q)oD8gyGkHa)|EA5;; zu=|AY)V`@*+I_@Fn`Ba3rR{)!o6u^YByO*6a|g>F()GAtYVPOSEnRz1&+qIxKJ^<+ zs;4$iO1OshGwr6m#8Dwg?e9y>$CwA$I`4yp(l)!YK_{{>L4tfSp4bMZZSgeV=f$$G zd$G6!fOKL9fc67!12_`Y?#Ru+mVjg%02jrDc3fDawYz{-qEMHea6JT6_vdcx^#}4J ztDG67Qn&$7e|%*}raDivd;?jW@Kk`C{Yl5rUVrE>ATBr!apP8|v|)a}xac9TvIzY} znq%0L+dQ68L>p9s_E(j?LDRFM$oV^&ulMz1=*m6zOGYPiYkS4FMJMyoBL5dkoC$}Me9Z*V%QQZbCZjWsfimEp4+Q%H<9 zX7psE<0HCGfOSu>cTQee^50~Mvh^yoRjdxY%0@3Z6Dh-u_z}C+3(rCjp4Ppx;n@gv zVoR-xd~?<`4wvmYh-XzHe{<_ZBF66_Sh!s~ z7Zvtv=ixV>=?~Ax6Z<|cz=Nl@UybK@U#F43<*`-V3vu--S15Qrz#@j83PUiz4ekUc+#txS7BE-t@A}U06COyG(PFCA! z4|V2~d#>YlJqK1Kd)_ubM%%nPZks*SKQDj>J95qapGm{bTNyVTCWP!1#rzlyESF#E z)=!PgtEvg!U*~UuACWWfVmjhtMBt<$^22HM13dgxtQTH_=y9$)Lf)65Up+Ivml=BR zLit7qC01EHAz+_?9PT? z);4l+C;Y?44x^#OZ%wqz_yMvJu^6m?MF|Urw-v$U!CA>mfv*8m1#>$6B{+O7i;D2m z0_7OMOUDd!@C06+7${5hiOZdawPaRypO#?bm~!SV?iiF(kifCpgDr+Ybp88<(ZJ9Fum$TfMxd z*y28Xpdb1@MvcDk8YCKqj8G0ZulRpo);hZ`Z6!oXZ^4JSq?wA!5ebLeK$ub*UW*_| z1dWdPz%Bwm>^jD0OwX|}5nPA(EoVa(I_#?n&1M4BZ3HXCOP||azSqA*KFS#eF!{4Z z9viSD%vuaaO3XZP$4T@ExUT2JcYZyVR7Yo9vn0}qeuX4XwC13=6U4{nA$#r^23$A# z4&v-O-m%bVFk zN-amHZeo49I$KuG;_NdfZl-Ki)v$nni>gk%SR>)>T% zm>dmi5>_PiU=$KR-Z zd_Ty7xdQ^dk%@yp2_xdZca%D|tkV^yB01G# zNICjzPdg+egL@zLq zDJ(c{WJ84bY%@;_&u8yIWT(%;ihfp`AJG7(LZ%gNG^ zRu@#DlVo*Q3e>K%SEeKuq_<74!DoPE$z<3r!;49_|)N9(^mr_ z?}(Y0MMVH==YB~bt!h3QXhdBKI|hX{C0`0#c(|5C&yVQ*R(z*9PY|iuMJy;;N+|?X^frKU#o&0$$3QMv_J8ia*BL2^FLxHm=qelcCa%JA0~wf?v=& z(VKxwCv((-%io78Ax&v?W;)UDl0?#hircpmHNFczE1l|dhsCIvYUIpJ_*Qg-N*3Cm zffF*}+wkb+J@tNNb<@69xER?Lzg^!>7%^1#9}cxI8KVfnrrUxmW}>5?1h_dtRzF>@ zb?7PTC*m%E=MQL;Z^M)CI0k54z6-unlFMu3R&aJ6J&AwkfH%d_(=l3MPU7`UEA~tu zSzDM^n7(}r6JtWZB!i3B--3FM2Zp}Yz?f1>(S>-IAuJ}kFdgT|rx&IdreR<511gAO z637vp6`0Oi(e2E%FPghEw*uq7m6P?^;wsGktke?e5ElD{DIY`nT=a?~Oi{_|Xb#8N z-HKmubFwxnpL2`e%49^2kKf#g#u>&jp{skb@TY5~J=yWOJvqhuD3annpTtd2h!=4+ z`qCp?qeU9=fg4>ief9&8E-VKMh5H}XnzZ1HsY5| z(H-$xX5Op|9;28qLpppxXBB!wGqs^4ugid_kTEOf9?is>jttk2!q3mIP zHlgpHDzbNy*NM%kBWrU7cl(wTDRa0i1=AJW4GEzOZ$*%G|$%t_!tQI`k;BtZX&EqiexlQQ1g$0W!kZDrI6AAyNnS)kAG zCeiSAotVX&QN;{S-a^K2??<9SMS+=ra7uc%o;%S1Afd zQQQ2`0E;s3@=4?Ldl99tYe`}gbdg=@c49J3UXqEZg&>w6$YL^SU+x|6M;ǚD6b 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/bin/Debug/log4net.xml b/tracking and telemetry/bin/Debug/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/tracking and telemetry/bin/Debug/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + +

    + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see
    http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
    + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
    +
    + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
    + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
    + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
    %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
    %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
    %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    +
    + + Note about caller location information.
    + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
    + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
    + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
    + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/tracking and telemetry/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..f4e848703f7f84a2fd06ec302ed79cd6017ed8fc GIT binary patch literal 1435 zcmcIk%Z}496m`<3&jHG7V8J5nKvP+XN{0cdLPLiNiPu1@VG}WOlbd4IiAQ!ao$>{I z4Ijftu;L%UH&g|p!mgHbY{$nr=U&|#Vi7`qn1M5n9oxW%S3Fcw%Q&M?b1ot}VS29V zP%7xUC!jQ!>A>$(pL*2my2D&#xq?9od8U}?y2trc@bCpJCvpzyVCwbae*7@@{iyG; z9&=Fa?q-egQfH8iGnN6enlTqp>?(JD9T^uwK$sZ|nm%XxW5%We&~>w7po;KcYRwQ@ zFC~jcEX<^;ui|MNyF;0rF$JoD-yQQ$P&F@g?SzROG$9q@IPJ#n%EucO@sx@6o$qfC zo;1)#)xcF;I0z_L#aI8hhf%gq`7AZb9Wo8XvO0JX@73xC;^E`qSjm}Ui90gc(C)p9 zgZ=x#JBUF+8iISMH6$kEpo4W%gOTCGLaKQ{Uq74t-km?7`_vCsK^%cL(lipHhTc!N zsf8j+<{Szwt*;?_mWO{fwnuNn}(t z&)jBdHG(r;)7bCYQQ0{tJ5C9)ZQCNvhJ_7IE-mp} oh33#lnRug2!~ixCZ7nTUzlM7&idVzM?7Zf16t=-A7($9EB?NMD+O(6TW{bl;Gdxg?DO1QWwnH9RhRD0}qOiO2NLs*U z_z#`_f&PL{e`0&i+FtIo58fFbyo`@!UCyT?9cjOFNF)=9#6R%hH$D%0K-gQ{l0u1^ zHg>oQs9V;7&4sZlJWu!=g|%FEhe^eSznq^prtvSAT@73vNVe>=KuhZ8vfDw`<<_sP zQ4xpCU#?Ei)aGgnwS3;5o2E0g4a4j>@`Vr_xuZS>TdcT1d{+aNX8amKl}S!8X+gYS_6_F<6(P1}lVC zjY#HjrDfxMKpG6w43}^M6kS}53n*h(nzn?`51D*Y}ba%LV8Fq zA&EpU$ev^}N#FxA(er0txuG=kz&&AqEsYLmtTUfUZW)`fSfBH|yLWVf6R|_xfNfJQ zKfjB*mbK)*lgoO_64K?>^D{R4zmM3$0-dww=JQK4vut{CX)kxzJnrdK<5-8i&Mxac zSC>q7T{I3aicV7;%I~>Pb@%{v9W)Lf>N;qrUYvVLWC%pzwA5lw@5?}>kEvv4M0QQ%!&)Wckh!B-W8TQ;+7z@!H`h+i z$Rp77M{@PO`B4D@HP^Y2j!@ZkCd~pWT@Y4!#s1j4cJ&FkPIbkv^Y8|ljS7_%jh^LoLX~zXklSl@7 zjAD;$WNkJymW-f+Rur0V0^IL$J7;^5O;@-#RP^Kc6?ZR(3X_A#}v&08IfJcFBRjG8@L3+1DqF^KZ=P2xVL6 z9QW}2Mu^VG<-5Ub9uc!06@)M^0LG35CJI|53z4#MBNeEoA<|1g+KWyjYGx7#nM^1m? zzQ)8PW-K@0@SKsiP(N{6xj6^hI3qtoduPIs9B3LkEzx5nG?=A5BU4ZnH`hGpS{aNt zFeD=ehis@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/tracking and telemetry/obj/Debug/SimpleExample.csproj.CopyComplete b/tracking and telemetry/obj/Debug/SimpleExample.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/tracking and telemetry/obj/Debug/SimpleExample.csproj.FileListAbsolute.txt b/tracking and telemetry/obj/Debug/SimpleExample.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..02809c5 --- /dev/null +++ b/tracking and telemetry/obj/Debug/SimpleExample.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\SimpleExample.exe.config +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\SimpleExample.exe +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\SimpleExample.pdb +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\log4net.dll +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\MAVLink.dll +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\MAVLink.pdb +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\bin\Debug\log4net.xml +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.csprojAssemblyReference.cache +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.Properties.Resources.resources +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.simpleexample.resources +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.csproj.GenerateResource.cache +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.csproj.CopyComplete +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.exe +C:\Users\Giorgos Ger\Desktop\MissionPlanner-master\MissionPlanner-master\ExtLibs\SimpleExample\obj\Debug\SimpleExample.pdb diff --git a/tracking and telemetry/obj/Debug/SimpleExample.csproj.GenerateResource.cache b/tracking and telemetry/obj/Debug/SimpleExample.csproj.GenerateResource.cache new file mode 100644 index 0000000000000000000000000000000000000000..c19cc8cb49ad6483a7caffe3bc7ce578aa515a51 GIT binary patch literal 1020 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/obj/Debug/SimpleExample.pdb b/tracking and telemetry/obj/Debug/SimpleExample.pdb new file mode 100644 index 0000000000000000000000000000000000000000..2459767974c3206cfd9bf862dbd438fa1b85752a GIT binary patch literal 3708 zcmai1du)@}6+id-i~Ttcu}xyir z)A_$?XsKzR`e`naeM9L>PN$nptJXu#4)6mC0R@1k0c zO+c*_)M^v-1|X;iIu1C^kR|8>;MZA_J_Ok8HhR;cP_?Si5`YdEN4T!3I1KiDWsZXW z2@SKI0@kPR=mGGte}X;?+J--Axpe^Mq-h6ut1X&$d>`~>OFj#9HhB3KZ3n#`bRK90 zCpfJ0j$5<}8dpNS7VQLGkNI3c7UZ)n`CnSJ3-nCP;{ZGOITrsli_Qf-g86KK1AMo| zXZ>mh{a4%;)04qZf|s!9e9#YK-iS3P_&#etT!1Zi)2{!ab6{~=eh%a(Wze4>d2?Y= znqLgQ8y2K#&J9lny*PuOg!y!U7ks~Ej|=qV44N-C4;E+geHk?8Ujgh*^S6U8%%C|> z`M1f$2moxa0JalXST=FJxTp)5s1qP50Gvg$fQf`Ah z@Kkuk@(nDA@jOmWl@eFGps0hZG>d-g;L2MDi|5I0z{R$0(Aa1*Fh5~C0bHnD1b$i} z0i0z3!+2?<9clo0pSsP&p95ELu$PC*ztLE?b!&gDC)}^sP`GEue2QzsCR#v|a3W0G zyQw#-^+zb8g(LmZL5-y-p$!bNBz5oX?bYHmghefZl>~(o3F_|KMH;7|`E$QN``|fm zUeoyFyK?s*`=S3%_nM`@aQxnTI7AoQe;{9cwR7vvcaL0XK6@^3bohGbPgl|MSC+|G z>&d+}e`s$_UL|`dsY7FNY6vcm_4jK%iD+z454LE7T0Gk0n_vwL#Rj#(#Ohc?>vvhJ zE8s|OdL9q&LPK?1WNUk{BNk8SY0*{D!C|k(>(qKJJ!$S*Z6x8hxNEn^5fK~}TpQMR z==s+2hUj1a(3*!V;`M- zePi*JM@x$CJ_U9}`=I&W$MpoWi1ot+_EH+57LV zXKU+_wN&qQ=1`tQ!B10AH&wYntB~2!MGX%juN~yC=3dC{)h|_^C7ZENl%p#bC@P*z zbXMl(OAvS*B+XKj1+-Ao6w0%s?@hC#bb<no7tRdemM znX2=lv|XV9RkM27FKCgSJAslqY^IX*(jt|nJMjn=QoWxm9o5M%!hFd_DA=+sB>96Xysc2PAtr9|WG zgPr!6pp{asNO{NYWYlm_BIsPgI0;SlQuUBq z;YWsDV%O}riaMzlQi~m-OU25(+EOz(ELOm~gffg6XqLNE5r)*g%;j`KSbU<06wRiI zQJ)-rS&nV?3u*i+0-uEO4pg^E6_162{#qn~8WdzqiGpX@E%EMb%BN|3Z{E~(G_yg- zEZn@6bppX)H8#Rm1C*kseklRl3vI~B8VKL82*^g2QRLC=riJ0_Eph+yZ zkrNY<$Mec3SF>>|6)K`Gmg6)uJ(}>67x9V379zz}DrS_+C}gF$>6{spQc)v}e~8f! z@|kf`dqm2H`$pm?9Qr5_Kt}5+6~*jrmNz?R40ET5WvPc{kXPyf)Ae4Iw1ntE}7mmMsj5eN$L?34ap7L6!5@PZbiyR>r8D z5v;dnCc|9Awj6X-phj*xW_h5HbIj)|l6s-CJL0jvczEERZ@~B?fr`3QZ#=Pn%GJ7O zp44J@a=u-mI8HCQ|Fhhw%KnkVdure3uRGzvjg@h)!96+HGP7`{5PbTO7EeSq-Pft< zv7PZAO%G*WFODxmA^(G69GdJji)5!y&^$#gpD2<_sg`jPPf3~2?}mKr MdEVnQ4$jB$A5BXvBme*a literal 0 HcmV?d00001 diff --git a/tracking and telemetry/obj/Debug/SimpleExample.simpleexample.resources b/tracking and telemetry/obj/Debug/SimpleExample.simpleexample.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/tracking and telemetry/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/tracking and telemetry/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..be3773f6db03fcb69af493c418a9693499157fe3 GIT binary patch literal 3584 zcmeHJU2GIp6h3#l-7ZTh?V<#t(J7^-KQd`8MhQszv!xWMt=+by3W3?#+wGXyxy#IK zX)z%sijiQ9#>9j-V|+5=6H(MxW8wn|A;xInff#?@eDFaNtk&<|nd!Dbh~ZUkd(S=R zJLjHz&$;K`osk#crWztjpf4{IUB)O|ucG%Ri%>T_{zU^_T6d-SGCOpod1BV~^|B|5 zo>|f@({)9l=eh1xT-|o{>}XCei2^q^Y)Eg9T#pSB9by{&I{Meqc(t3fO<&Kth|)l` z5dE$VqmJH-PSmJ)=;Xd-i$^*RA(~S|y=SGV{I8CYC?T}h;CD1+?@oJ(>hG?(H>wk* zR#~JV?_VVw0iO>b-;hSot&SCvYC6$z!{d&yqCNBima*NoA;A4W@2g!#{IbctX;e!~ zI?)?-L`;JB(Vo!S5D^ZpgJ@HiM!VnxzMAMXXyT!NSUUOSHu4~puObw!Z5^xy?9={w zko9$o(k`^F@1zvmzz-uRW$5q&nn-t2vSS-*i&E%_^{8X$K_k7^hD4>QW6DnwCEGSY z2%yy#r3oDO=MMCV>C=>hadicA!MRktcNy-d2WJ;Evb&ws~usp zsw5OH#LX z0erJ|i>2uTxu8u<(lhikv=bz4x)l9g+o+}KP2h5+aJ?{Njr6|uxz-E}C~Kr^ke&lBpKPl;*EypxZ<%7{I@;a?CtSQ&o3Yw;N&_?Q3$Sy@q(9P7R_!GD`+p*8z zv`!iZ(nYqy&(S7Ww9{^yVg@SjEEz!F0)2!o(g3y4r=XqmCuk4ou(GriZ$Z06kJ2-= z2m4~kh&;h=Z4PvSUIG0@TZBdfE_*F(5}@+#)lp&*25Z_yq<7_QgJ!>~ircYk;nB#M zdqzZ|;_$sx@-5*xcAjzzt~Kik*FMDyRNyma#R-O8KQLX3(|E-V>=K_?DD(ZMTW~lH z@jy!ZJW+}eDN>OK#|AL7;&Jj<@gDa@#j|*<>noQX+cE=NxH%pK@~-roKBvKg9SE=A z6DNH$@9&scbvk8{#ha02KNHT(5iusugGezZg|G%k!0Dk$cYzchcwH-IUUO zb;51yRu$peYNO-aG3OQMSM^b5q#0Cs+p&X%s&>wFDjccx170$ujc~aeAotv%F;A4a z7uei4#-r@`Mwa__5m6eJZxkFy_WxuUtwC{~M@+Z6tUF^DD@YuY9fL!7Z%oHNwFVsL zGY+?uS#(ar?u<}p8t)K(P2@FpBNLkyVQBJ%$gpsHplXQX&e~?t6@Fk_empPAno5bB zm*d`?ZSkr;P6&l3iTaR9gWfKc9X>d3%E73nkm4$$(frGZL2Wu4REoccIwE~)}1%c)g&{m=vJ<%DCw&IHI`ta#GU|!WDL!N0m=MD84g7`)x9BX$i(QD7{T16O zaIa4O2;vV2=-`NLdBPVnfiY$K71PNDm4Ypd@MghVbj?>PJO*+&T!-&N8AO*^ zc&YBEV)xjn{9!};IQj;W{MVA#C3k0wzg0rbu>s*_9cRR}-SDmBTwN-uU2cUB_0@N$ Xmj}q24CvwK + + + \ No newline at end of file diff --git a/tracking and telemetry/packages/log4net.2.0.8/.signature.p7s b/tracking and telemetry/packages/log4net.2.0.8/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..c72b89b3b7864bffe125bb42c6e5447f95bc7492 GIT binary patch literal 9483 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

    ~ks{C2NHG;A47{`_*t3spQkfx=m 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 + + + log4net + + + +

    + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
    + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
    +
    + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
    + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
    + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
    %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
    %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
    %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    +
    + + Note about caller location information.
    + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
    + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
    + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
    + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net35-client/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/net35-client/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..e8a0d0eced735ec50b786a8b4d2cf7a707037cc5 GIT binary patch literal 282624 zcmeFad4L>MwLe}{Ra4zvJ(Hwo>7Hbg%p@d3(bJP;5(p$f2mt~FWET<^*^wZmLUn@3 z&_hH;MF@zB8bu(AyC|X}JXzdOd5A$2QDI!ZZV!DfPsOLchriF~oLfuJ0`dLc_xI0_ zfppzE_ug~QJ@?#m&pmgkmz{c}1<)XJ68P?%A6*gg6#C+!e#=4)lD|COk4WAu zYtfeTFW-Xquk@OF^()<(B&_;bi=ujTE`UNCXk^{2C3t53R)hLQ(fJpLNJv^O&@Abg zKJ&NQvesl?Ukbj&ftNV&5(i%5z)Ku>i32Zj;3W>c#DSMM@Dc}J;=uopIB*;1)%fGw z)V5l!&wr!EI^a^)(eg>$rZ)+Gb!c^mt;)hY#Db^AA7!__|wqpZJUS zz;y$kx%l5UeSOa6uH*Oqx%;}m{c`wMH$1-KQ|I;X-@ojY{hvN})0^e(x~4i;OMZ`;8VJi=l8)OX}8uYtL} zTeYkr=Fa_|7d8C}YHD_T`4$5<@Ko6IVmL~y^AW|+QNPy+;Ij&q&-*!9fMTP82gVoQJ z7?)S+)AD-3D>zVCSI}M*+7(A_z8!*TUi8jMm=+csuY3QRfgY6>qG|H`x9RY+jgWc55temnGZNW4T<0Cjkhu4zT8(VRa3FMK;3w*45Qw z8p`?*@OvStxAC zE?4bv8bbcypyz}qyOvkXb#FKfOcMd80}Gj~!S-^s%OA{n;VDSsdqdx@petFOkdOWG zgv^(mp<;9tNUj6mUty0>P=`vk?JV>gK;wE15nX$PFHX1~cp&n8sS2Kw!DHK9%{ea9 z&eatx0NF$Bj=l!-@m8%=J*C4I-yAwn$tjlG2B+upJAB&{>B?8ux8-wahhJB}t^H;Q zm7a%6Cqn#2&^^BAix8Jl0_f^p;#jZ16E!H=BSqG1h8-M$iq_pcR0|;rPdW)f{p4Lg zdw%F4nXO5jpdV#xI6M$I{6xN48SR4$ttBsy+s?7hL)qXI%4Tl|qyI`quTn-66h01i z)|R{BH^3F&tIhR7s1}G^w`OtN@S8~Cc;RY*t4+XhZ+^MzSE_4vftMx=gu(D>&+^KvZW90rU-2dcofS6-fMnG!F)5!yO5Zd3py;VSm@oREO{lu{O0pxjxiybj%($1V2E%yl4f2GUSQiYjahGJ0P@duljdEL4z!++FkmD zL>Sge|D6Rf_eDmTs#Y)lW<_yhNR;~CEDHQ?Gh!t!qdxXMNYjac* z!mmKM?aK8bVv4!4vojZxN!6xkX+|e}Qd*~Wp%y+g%?1ZZ7nu&(k&;LXo77WMY>Yx8 zlQj@UkyJ{MswpqJnW3RAU-ow9l?Icuw<%|HgQ0JCE@`!1hKfNsl-y7x$QjB*Pf0x> zOhcV1ZYRbKcxAoT+AHTOcnuB)ugL)nJd*VhJ6OP0j_zeE!p9Fj1xM&(Eg$tmkfYI! zTG{2`Xh3K%^x#$cj06Cf83QB$00s$7AprnjHz+^?0AT!9fCK=*Af^Bb0Dz%h0TKY9 z90Mc(Kwk`y006KOG>Zgw*c|a-g<%NuFr);KZqE*v;Wt<(5$jo@<#vFf8Ob*A4gKA< z9s#eRy^!T7z-lMi0l4p>MdcYD3Z7IJts3n|anT1Hb_I#AWa6*e43#WudayO<~K1 z8!DUDzY&Ft_LY{Xs)6xxln?Wm3BhWP;+}{jiiAF~r7%R6oZw`n+=71D;(Km*3SMYV zAdO=^iYGK0`oaD{1N|mXVc z;b{O=qk&fT8|I0QKv0-he`Sm1U10~Pr&l{tpQg0^o#+EdhSC@r%twzZ<}gM|^iZ!s z$GGTA&FFGfC;An$j-Jkf*}u`>EsSfZ7ZjpbDF?koH?|<2PTb*c(J8zUowlbT>P!;V>5ukP=Y12!c|jfX zPiP=TT~(gst@duKlepIG%2P|MK)!9vRNaob&>jewd3HHCn>8;7=j!8pJUF<_V_Hs# zB>=#D0#*UQ0H$`t!GsvNG@%3lfSIWP2><{x6d(Zr_KX1%(0*_!>I-wB>4oPI79g2dBa8vAoCAg!g)tDGCoudfjDZl<^BvJ^Ug#n`5ck7< zP(C_7%BRvZrC)&Hmdn6J01!sM{5=Gum>cp&Ux}z9LKRNT7orbo@amt}?vIi(Uz8sIC2>b}zal zeyNqAoS3F(LsTd5B9b?V^qA0cYaBVp43YrS z92^5A0Kl3UAOY}}Jnm|-ESN9QOWLuW$dbu7QA2EYn0OhRT`cVO0Nyafo{q{El(pSqgs7IPhEr-#!l9 zH$&kc8V~PR_$S80S1bJP1n%`+qU6KKg;Mt$hmcp`nLO9oGSUgq4!{<#da{k_?Y+ov z{0Q~W5PE`9HhnX$w;`F0!-(Y=19UR5t7BOB2INa4;PrSn00Y(7JqS-uQ|u0jO|x$W zu}ulyBMDX-{9Q@{DzcWO4A@RNd?Qj+A5#ck(e3@pdUwNcG5Rv=^J=`qFGAAG4%`LI zD299$Q*I!VI;}yMd>`=WtFxmz8Uq%N9F7c?^$k8uw7ZkO6URClLIfKg{sAJ@$n6`K zO~d4kfXe#dwgji4Z>QaiaG|7J2#Oob;z7+fC&;oMx`m0VoX?=6STmEd>)TKe^oi8c z(?_PNs24M85w_Gw>I20@y|&QQqwEis6^FOO2`>lZYBpRwmGw~Tf?(NC%CRndp*&u5 zo^IxGmUtF=mi*aHCAd{ML#n3Y8$3>oUOYz=;FYy=D(H=bI~$}G4b&xL2{w#u=AzNR zLnvL^%L#8Jzr6C|VpJ+5Lek86FMJykX?;EGeB{M!jJjI{#gw)|csia`(kR3>ky;VK zMyVR9aTTpaQ_+-65zhK2Nda^gk!|0ow6t2s8(QLG^NMOli{a7sjf?hn;P=!XnurC; zC5N;?PkWM`l`m~4*m}}R=C>i0u)sTwcsmLg8FyllBca)BaqXnVG=p%gxqUQ8 z)qz}}*}l}DvIwuBk;Z#Oi>vF~OwzO^axCcY89bl#0{NSHG z!gQKS@+~Sx{|*KkH}OKr2&E*LR#~BLIsXGaMI87~#_i zuVF0Q3-adbu$R8V?D4B`_Ayp)CogYezBuO1d`VDB6D*1@DT3ZBfZ&R$!buL(5{4vc ziK+5r;V=O4e@q0MBzbu!U$SYZ3dgx`8J_{1gJlj)&9yi79Zb=ZH9zB>8aWnxsTFN` zh98ETa+3A8-aXWhd#Wa@wd>Of-;eYIil5^y@pIkfhvXZk_OLI^3ZrHiD%$ni>9}Q~ zF%C?MCze^Z=IyIxlJ>>GJx6Gd*ZhcJC_hSJ^~bQN!1wTjz|^#Op*kgR%^hgQHFpB8 zn&S+)UH%x92T?iUhjs^7Z9Gqvn;nK8aueQZB21YY(=>a*)HFG@ilV^Mq@m{{LQgSS zn(5+7)Bh0HM|THTJOw-%)SD@w=+ZGt)YWEwm_|ae%s`CoHeQYloGtP>ZnntvIqKmF zbH$4ImVyz84E)a(#R02MaG{T}95Z7ij>mzck8L<|3L;i~6|bXE*6>S7sWrdvPrmk2G;vy^lGLY}crBm7&p~H!HG)Ok%k|R> zTYnwi8Z1G}sf19T$WBP`1_aR%wAEqvS@Td<&-I9htFGMFev4P>^KbFCkuuH%F6NW2 z6A1utNeqwxrZAjRV!UR&#?Crt{o{>ICck;=gbGRt&2I+gKQeT3yjB-W(51`=3F32{ z1nri;LGnX-6qfG}O zzlcNlB>@14L;w<4t0_2z2;PK-V4K?(m~GZnnFuRHDvbdKCiol_hZBAmH2LZc#j-&* zNxOOT0t{YgXO>-Sl>#VMKQ%q})c_lQ2e2%BT4;V_E1{9oW^HbuDG}^t@G=B3um&yg zo@T1Y6jB=rpnA+L00{sf8D%(Sai-$}etDcw0sz36(wq_i0E4XpBtZY?AneHbnZCfR z&5JG#g35ju+@d}y6{jaW>Oxm=J?aNHF?yR+QfLdd16UkuE4gsvyT*-Qy8wNbRgxu# z+WJvwBX^FvM$z@lQ6G4+6FVss6GA=Fu?m_AZ)xkSXrsPi(T!*Tnk{Z#1jJ=3F8slx zyrClmweh-oC9fP^B{{tWwbv8fub`PRGH;ea=B3EG+M24I^J?pw>Tp0)rEfr`V*m-% zb_z=5*?8u(4c5G&y<+f-rUol>U}Y{g>e=j~u(CDHm-6N4aj8~5scF6^`acSqncrE; z$Cb>dl^k1){XuO|6j66O+~-1R^mPQqwO^3cDSLEN3mUG7RP;q3d^9vW`qMD}?SX$M z;U6%_AK?q2AJMwjt$4<8jkT=51IB-g0YC?7p^hvg3_O_Q)?wK}oZRrOczVH2_=O(r zh0Z1}SX&sAD9gSRbx((D?ORwPhTrm(9JT>jEww`K4nFe1%I&D)P5oG<xD1EE+3j$TZs&eihJ{uqYqzL(|e# z|8$~ZCI2XfNq2ZUnpr}eX<&5?nnQ+MI3T^wLX*H^OlGGnk4m2dPq_cl2lYl z8auYrteu$N(pG9KM^Av5ouxL&5Cs#Vo~SfKKl8yRT?eHiCAlEewYMuV)VKHoD zRR0yy{5_U`)kW$4OA7@mj=~A(nH<`nyqFFq;%dO|gl=7WOj| zIGIz_xC8*$MgVp2GVlZZN#_n>6?vRmkBz+!;G$Rm8cfOt)7xPUQK`9`*rovdME+f=}UxC36>Erx-x8gt)m10AT?5H2>?Kn1Rwzbu89E>0DzQA3JFkNz63hq|4Qa5OgYXr zBS^Dy@}JgNu-PFtIYWGjFuX*9q_4IHYyVOcE?;Bow2&`ri^0nPZ!pmqbaApBMN??4 z!XuHSItshljqazcn*C(4=8(Rl(S04JD;c@9G4txVEZ(mYP{~1Vg=JW#gVhkz3Twl| zde6jSxu4q>n?u@g{k93YcCd# zKP{=&Z%QN`19rfEKc0$MM|4^F*)bh0GFQ*wnU}#+>#_sU^y8{ybWOLFpOfNwVS1>6 zUYwq}sz+ozdKricD0kRLx{kTmBvwKTYJ$yp(MQp=J98Cm%Ik?9knl|RI+$xMJ9D$5 zF9{%cFE!V!Fo!XlR%5KY0QIdk19+v3w*e#QF9q!2(+mfT)90U76h^W60oC%KxV)UA< z%@8am4CCG&usN~IcV415*?+4$;RJ^H3I%y95I93KqK|?v(J$~*zYUNp;FN%o&T|x< zSVsd{Y)9y$bAi?#xfW55+d9pi)*9Z9S5mPac((fp7%>0FZ=+W;+SPw z;l(5wyZf{Zk_TTL^g~)^cn31TVI30?evt1=^*#I$U$BClriU1Rm_V!`XMo{H2!q^z zluvj`GI4He__0ZHe4H?>kTp~D2|}AecTNO-aw6zc1dSu=F2dlPA#dU8eU43W5jcY7 z5Lr7~3w{ow4bV}N&F9xKE%x4z2>(K)ZZNwdsm;Ke7gJy{KpsslT%%8XYuSOZztj;s zrN(xSy~_r{20>s8wjs>;rMS%$g)S*D8L~lZY!g+NCbrkztQ!1W!DkqNx6=(in}j|W zM{+M2hgA3wbU2iN%mI%;-G@Z}E=8g+)f4Sba1Zih#`t+WhH$3lUOWffA*W}sWp>fY z^|aRS1EejxKP#Wu71aZ@pV2m1h%)w^tPE@e`Y2Fj$3;}r)U(6N&r%%dYna+{zgnxD zl@NPRY=t`8aol5>xKVfj zW+svVXGq9*hRH5@VgVfgfdtH*xT51UFrRjz!`{kN#tzlBPPId!vE8BLu)%Fa5{@uk zB@jv(1tW=&u|*RI)(lfnZI3Xs`p;>r&aYaFV%ixK(=Ms96oa4R`8HFj!QA!#9p5~h`hJjuy1|82-xTdmLVezes9Iv6IS>|lH- z^4cIsjwdH$oxcT)$;bRrHJzI;<&I4rZAEd zK7c~1S(N*C8r;^?!?@gVR-_cp)Y-}LI+Wv~7a zk~LUxQ<+~R2A&10K5V$uX}I)7q=&3d$T6oJ=ZIw%Pf!U-jr-yv(j4od5lr`GI?3nw z)wHcg8Z8xl^Nd~N^@#%y+F>@QJP5_%_HYxKU@QGzkwa!LF$vPWfV%)pA&bCYAxRC$=%p}t>31E?o>62}h z;=@=S_bIcE#1!I|RdhHv=LOSYcwu)!fVrHnrH_yXIM;|bxSfic{t%37^rxbK3bn?m z2d}3W+=d_DEI$;z=u&i=T(FZFk%xK>Z6|+r(2KqkydP0|%0P;eiU(gt`E;VN@Zc+W zL1y(Ocvi06a$u|{{<+J6ZK=?rbr$~|2sHk=53p!w6m!e0e-492{Mys(y_*?(@6?$$ z3$L$E6Zhiv^7M6fbxw7bJ@-^+Jx4XDS8W6dKsj7W~0+PMU;g0pGsDv1)gB1<4hy04l62sav541oBFw$*qB z5Dz*f-aM6qmzkq{pvZ9092r7==##Xq{ZQ|{rQQUE-vD8Wy-CPqhuE@~rRs+cYmPZH z4L{YrsPH7m`|blcKHeu`RFZT_=aT^G*$4FCUkS4t;?culBPnfq(%Ke?IRuj`E96yr z=33K-bZj8bJq=FHrFG2W2_HeNGg#s}#eOK_I1D(JkK>b>g9v|0%LZspbhv_KkwQ%qZNrK+Y|c@@R~xe!o4{m;Lhu-}n-2I*P~Lc)bxfK8l~E>3 z08B<2?v2Iy5%357ri6WNc?V}@q0vu|jsgj~*G<=0umvDGg=FCXOR=LRcnl>3-@?yM ztV+H|B4$e7whlWRIZGCecY3;VCp+X|-%Ht`0SJ_adQ3y@!v7D+km5lGIVJs80s!oa z0TKWJ)zuUdP`?746!bO6e$HSQ_>Z~ogJ6c)<`jGzpz=~2wP8S6dv>(2hwev0WG`XL z-@_2`zro+&JHTCgjV(_po&YWW+~_JPo{&uObTr+<;tQ2>r;DvFY5T(MB<)+!_U&x# zXwAl&1}@F|x5w#<627;*(&9fNV|J)Ww8wS+K&%68a?#5twMlw69uatsw2sW9US& zv9b6)27_;bBD>$V;U0a0!RRiO6ClnH9_M@T6ocPGkRvtdQc;%x0K_M~Ljtfih}Bpd z^o70^{onv;ODWmdfd2+`!L#^*p+QVEruo#}D#gK^6Mhj@iT78vLG0xCNvF5p55QFH ze+a)1vPxdx0eUv01iyX+$N)gAVo*+xsbCTMtEiK{3|^GS_KjB|DObJw`j>X#cXUY` zj(fIhzQHwsv@gOtHfJr@Wojtw^~3X#v$9?f^0Y6SmU;7+VJ#X5D{&l-zk@U4H_g5D zIy-n0mBpI*fhagc6?}Ai3UQ&(EW{;Ovm7)N*Ak4KialYnSgIn;Rr7N6uN2=>vs9O2 zu`V^sHFrmdV3$;~apE);ZR_CKlx+ROYLLZ$r{a~evd#{k27TI|YN*Nj8D$!kfK9Ir zEq3(2i5>lGS7`D%2hSpwst3|F1udTsRMPKZ|u=a*Q^fc;QwsAE0^^5FWHJ?ap8}NAif|Wll8sLS>aH|GyrYPtT^t&Y}E_&HT(%) z2J9>U8&Sbe8LnUy zQl6bTACCKoSV^vF8CisX%G`+qpK!ANZ_D{0u-~$y>o)76 zhR1Msqrk_^hR;W(QPc-kW%$<4N3ay7RyogHK&1G?tp|wUo-aPbF9I{XI}G#EqypIV zwDGN4*6i7_9Xo<;ldAqC0J$Myq7NkiKrRMI007b`DI~DgzLHNJG=G6o;mW}Z2w|0r z)(0PfRVlTi@@2Iorvw0C1tCwI(_M%Np6P&z{Jy36aenNrAyLlxOk)USDquSj9Y+& zDkha+E{h*wwUIictFQ)5un5mBzk?KnPk>fs|5A*7^O1TC$3%n{%nXE<2T)X#PxZR% zcx+e4{14-~hV;iXODE_6k{K=Ki+r~>lwApIbGXmg$K@dPf5S6)7C-*j0qIE>T|XRD z8LI68uJr>|ZPqBPa5uUT{lJO-j9(f3b*)g^V2C$y+2jM3Bi5m6nF_-CkgXo^byRu= zdx2G68L!Lbt#{p~^35|uXR%`V)7Bk2St2s8CDfzuQD#2`x(@~2azn{DqC0br5ZsoR<(y(pmUC*y=Y{_EoLvaIKx^&ril7!ps3PMZxN2IA?+nYDZWjv2H@2Awdp9bP{T4NF~HHM9?^To2Y z@hV+^%k8WQkQ+k6$b4nGLpNc8#!#VfHnIckkt-lRXaxjEA#U^8!I zOPcE5&}VISqfg>DQ(fB)W};HH7`P2>RZc!z0gx+i07&VaVWDabKitdcq0 zr>q_8TISpV(V<^`IcPruZP4vIhBY-@FGzkBbE0L#zaWf$HC)PJ(_#3Zcop>FJ+Y>aay}=c-0CjIrlFjh9Q3bhnHach`;E4$$s;rk;Xold@Km2wt>y3U5 z(lleLM$FlI;F-*D8N@zEv3+8rexG^Cd;l|x%!XA}4$ThF-~h1!Qmp}f643NX_s0d8 z`*F(;p$#g-?4AI-tm@~VT2!q+1jdR1ZAjnGm|NJoNewy_@D3W5H@R|7b*~*%z(ZWn zgS2M6{h{w%hqa&eKjlVB8e3anYq(|E35424_BKsT5N0*ty8b%L#Sb5QkotKDJ=&vd!VPDb)vI+8aH zb!aV2#+!z^v5{mKA5qg$c_7i59dUxX0MzMbI2sAYQ8u=Sz#`H>m0vHcHhYBq+b zlhr1WJ)J(-Cj6v49+Tnc0=zr^EY*U%dWmFKjDyGR2{7IEjXK0?!sCWss=Owfp|jP= zDJR=-?jr}kR~wQ%o%6@msGc1Rw(hg?Uy9)$w^luCt!10hFY|peAAj2Wl-A#&n9LMP z=7`t59~s7(cA9$T0`_nk3(^*ora45?B&NZnX)cj8oa#@8$8=(`)Xdxr>+eimUOEl? zX^0z}clemlSE=hZLY9sdT}Mh+oPk%9{Qyp9R96_gXo;Q7-jZsi8c6zgT;c{TQHu8m zSH>B2H6hJo@ZmZXsaqN$>Ies8eXp|kOEFSY4F|by08>P(NO`5O z?Y5t7S;v9zj_($8hk1au;@^SzcMbl*m0__dK8t_*O-IrW{1;%l@1K8h00YB^9R~mm z3j(0`3D^S}@%Q_K0%Z67{ot$Lt$aWPTZ4!sUltK86(HLFKSdP4edYJHE$->C`r1$o zUpHJFDAxUAtc0R)fo2PbjG=JYiT|@&nDVB^d=HqlJA9qMp9z@f00K#4-Gu1DGyiw+ zVj>)%D<^n6tP0Pm!s}7JX4gt8Czw3`HoAfOKb?bfuTqC~=x?KKU7Z!cyTwhwx@mJ( z0C`VeZ?*%>rToT1BsIYS2K#00aA&^oxn8`thS`5i$& zI4WnqaI4PJ-(=1xWm22F#lmC2?6I!+^y)jH?ew&&95#s8^Ug5$#`EkUX*w8P1@pO5 z9fmtEG$1$i_DkFiC~qMgmvohqJt3roCQyfh$d9lSVcbcGU}f1%q$8u1&Gjxsh28iW zgddbCdX^Qvpd3T%6@-dduj|1RCyB|caHfXY?)6zr*-Jn;8^0=8;T#E4ew0w01D>0J zOf2OniG=_nFF_`j%@)UMYid!zNjfNEA(Au91`RAz>{Q!u(jHyJtiXj`sXUW5**yp~-h;3|?m=K$?w@CGvgHQO27EcPX=xds>=qJ$ zob4S0Bme*=MVdka0AO;a00{sfxUi1oa4eBO;3H6@FjY;!=GuMXr$4%27N&*bdpea?yzkIna`Of-_tVoVn->fs%z; z=&J-uK4zg;0V-;-GvASquIC#h-p?kv*u_kbm`#6W@8(7y-25TEyB)nd=M=Pe7b@%9 z3*&otCbc@Q4573WB-m^gk71457`^QFSfozQN5*HzMWk+qc#pGfF{jL4(~NODYP6_#upa2x|^-V88&V?X*Q_87etE%m>#2gVUncx6?uFkl5p;nE+U zAwC?#LkJ9W!xVT$xrfd-chQ!RWfZ;?H~OUr7wa*(g+9Wl`bA_GvGLAY$%hFd?yS8G z^QGr!#X1K_t$h#F`)YS8C71*$MIkW6(IP@ zR|pNqn`1f8C2vlGPOwK<6i)VHF!I|57aAWT#1%V7ov@C~V>7UU6xWh@a58V=yJcL7 zPfYGgH0#2%t-?ZU2Ibert<%E?sb7(0FGbleXW8+3o6rz026bCHksf!c>1qj<21#9V z8xnY>b8b1y0V9g-%p0#?9N!YMW+J)--@Lta{fz6f>~|+;cvAy=_5*v$&)ZdA07==p z4QWo1G-SOKV&3l?QNhK*I6{NfYG1aFjGHif^$0w~1cx;fv~BsmuEmRU(cQ=gn?vRD zM|hD-=%fk2`Af+8S*9g$#a>j}6FQ0Qqm3gwt;et@hxE`BMKQqocK|}+H692pSf>{L z$9)%Xkx2{M#jofHhnP?yED9B}hTT~`Q5(;|N-!I0x3VKyKSHY4y zR!rRvBnsy!ofb}wJL{g#p}H1SUv_RXeQR>g-oOoP+Cbk;sveLBq+t z0Ni7cjM0*eJ(M0UCDH~9TUHFEW&mivb!-2#_X2zl0mqZ2q8D} zqx&07*<>T^eNv4@(?QdYVvEyzeDx=I3t+6$5pfM90KkzkKmq`)ivbegUM%Vy__|F$Fv8ze419E$ zqUd*Cjb6vfkk518ehq!k4L*Vr2XXz58+;6*Y$w4!F3O?!ye+8td_{GOjjwSGuTnW- ze`tpyIuqsc+BuSoqq_2xP4g>n231NvFN7rZ0w0P|(P@tNC%O6>8n3f)JyPRmae!8&%kJ65)GY+@9vwR${*{pPgvU z5c00KiSrFHRu)O#UwD^D-n}@CZinxv6Y!z;@y0z^KErpI2Y40_=u)5r5a+F)dyQm5Ut}QGO8(Q0P)WT7aPR0sS_Lr(bJfmSV2@3&mLLjjly9ebH>m z8c)?kvBcDnt*){A&J$G!a*sh2HJ&_4zXUk`TnGBk5&8)l>K{FpSU!icoDhoLkNy@@ zCmZ3a8oy{UXGy%-T-1B?c-D7}bcLUVB93M(F|8q0(dc!A zu|KBlmDsV40Zs6FCgAp;F{{gup5zJ7bT_qf^c3vf=_yS!7h@Ey%AjM z^`oI>FlnHn{PNNcO??U=s;CE-M9<k+|}?$>%jx^}~!eRTKnx#Am`Ad}iS8R6>R$F!UF6Gw$0b7M_nF2+2-mUtg5 zl(w15<{Zz$1PSuRcw(EAw!{wsKQESj-D|}ae$t5*e(eXm_~r;uyR$G8m*7mi^9C2d zXzeawl_=Czhquc3y7%_XF2A=pxXPJXsf5soSeIYfmK&O{Ssp(ii)xrtXmsUye{aw#=%?r?VuSHw{ll+|y(Iovs$JYTu>;Ftt*P1PY{OHJAkZ ztMFQ0^G$uT(`x@@Y|nn#Dm<#PY~yt3?5DIXEbG(O;-6UkO#eddqLl4^yZjQAToAWQ zR=-~Z`qQlui5P!?VBvQC6ja!+ug5QLuL?KdiG3ZX;=xnbr{Ou)-EQP>zt{@KedX{a zUasKv080n=WGDzvM;^{Z!!rP(&}oqMv{Lc6ImzqR{1Zt6axNOr$%IQG6WZX4A<+^j4;2IsG|!(fB5 z=$|~g3-%&E3m%wbgu>dS;pVT58x9jdc8XDSB6p#F)mg%-A;L4ku`O_Ea*|!nMx2ER zFMJYN;h*|89)2bkp9w>B@e04;Qjb_fE>A!zSI^?zSSd-FI*@FASk0_nO*s1iB#f5hSH(tlRf${| zb2+CHo`Wid=aL^ZP$<@a;~exNIeN8?{M&U>Vu8_g;eCjnj2rCXiBAs-gf|93rQq!2 zdBE3zvcTL;e+drHXHgg6rwK~kAHFhy_8lKyn7qIp{sbDKzL9AznjHM9$-x(A!QUa0 zONeAs0c-ooXj+mUfsJka<52|BSmtRv9?goJVcUxM|2zpQokh_sauDZKN!}Qg5txD;mh#4{Ca3I1%6rv@~s zStsE|IS+wfdQyAWmtz@obXGK5BAw_rNa93m4vfV&KEMuD?2bYKyU`Pfvq$)z4t3HK zFp0w{FGd7ELkn{q#o=B*>muoE#mHF|7oXh!H$nm((GOcm5)Afo#4hAS^N>0_HEX_r zL2awDwfL~uu5ftPK+3`=F_aE`5h%WBPzs6;1J0(x+HHZk!OubQ_)8wNj83bX+_~mj z_o9qfO{mW#CDK_mp>nmjawE-^6V9gA;I9!I@As@6#BkGoPwsvcj=MTtRmM5t=b%VT zp{hDzj6REcO@4R9JnM!}#k{kve$?w?)GJ+cQsOU%j7_{RByUZx#Ci3OU@RabuWEj! zA$$$9dh*qz>q#O$t5}8#fML{@==8kkYxs_B>~>yIQ=I2uC)yOEA4iNAed*6VsKX}G zA-UKE_&Wu; z?ASrZu7!tT(wnO?XA;wAo`$-fQ&7F6TnWxgN+Gp^8NzF;exRY~Am z%VYVH$MfI*)1_8)Nbb$x-&6QE2mk(ze{=DV_7ff!+DIl7uoA3(1Ls=leEdVFx88$) zd4&1L_WuyxFP$KJP3^CWgF179AWo$-?GbjdjI0!MD;`COIpLMN?4&GjxwAa_t8g>k z3BT}Qa@w7lGm}JYho@!71uGZ^s$g?5LCUJZP;mAYGM~dZP0+MbxNt^Fk+vpCacJiq znxI$Rbx1WkdO|^SlvLBKt#eKJ<}(?bZ+JuJn_7T{^2vg7B!dG!w4=M%Wq2rg+|M7I zK4{Aq9wCIq$q4ZmNUGPQkq;L8S-yv3HBj*T@J}`qNPFs75mC=3`xCU$c6Y3(OWt^_ zVBY`vSV8%+K_BcMxeIXNnpg?)TGqpoxAbm8m6|IsIMvRCy_^cs77kMTf0C7y_T~M_ zG)3Y=9j^qkojF*WNmBFC_a<05&8#Q|%p;o+Hw z#5~M&A$qAqk>VVRI6~>Ax)dqtr3%V$&}Lj!Ne7ZuIcFD6AnCYU4o1W(sI}szo1s3z zFKC_Ut-z&ICOUKXyAADtG?n35*+hR#5=r+c@7PMz_;T~?Y^pCD8lz&W!S%WDMhJN= z4@J(v@wxCOzOPQLV1-wQd5>&H+El!>4-z+G^12oL26fKDf3t ztu%ed7AD5x^3ojcP`(az8w(6&tAR12W}*x6E+bG(ZfQEMcbQ(AUYfRjtSv zM02#-$ham(79F4YFeC~KYC_?@M>Z!d`Ql1@hDT_-I*TZqtH_;2jHQN=GuE+AY0+)* zYGBc^-=iMM9JDp! zg=xGep>g^tN+YM`)S}sGIp1Ykt`Xy=3~P3+kEz{8*-KW`wyQ6Pru(13v)FWRz`;V# z4jd}7Zpc^J>mdOwBuWGq5+y*PhEE;-Ebf_=G0;9b!6u1oH7C3m6QJ4xeTJi=gY6Mw zT!cxI1j4HTt>POWl4oeP$@wOy+ zLl)#j4TIMLK?6Uo-P*XCSYX1sZcyP|4fSLUpG?iCB#Ggy^PZ^l6|D1CtfIno&=o9X zEwRUsSv>g#vG7eoqIg_HQGs8M+{HRc-aHmN23US{1PFGb%kV4uUe7YGQWTD&wt2Tb zi!$%>IoRxb8KtjlN@5dqkzMO>Vlqu$l8LBAAeJ9bVlru0Y$}xR^y)q$+=Is0S`q6N z62RV~7-n}@6DV7egy1BV;+Ks^Fb^<)b>y5Jf)*~w`^Qz$r`a++z`6~-I=BC!@3dIa zeF+Q`b_07dfx&g>_J8UVNcU_4gB#E7zwH{po=afx)w%sQ!rF=Km&IjZJaPNC?FU#_ z0)y+z?cZDiY<>cR56ta9>sbswixLKFEyuz-ZP7%XZRg3Y;Pi#|u8?R?ld}cs^P6l>$3=0<{UmAfmsY3u5 zs9qK)*uJqT_E3pUv%|pin-Ux*3DB3NOnl>oB%q(Xflut}Du=^JQGHAyc!k-5Z_&FO zhKtdcSsx53ypWXn%JQiV1cHMB)DM(P1a?C>!QsH8>6{(a(HO9B1QNqDoqU*RcPHhP zeUw8WY*+YmNRLKu-?(fVR4@UR^}&$|Rzu-VcyzKT7fQ;7pt->;9$c@@39`(`k#VUw zzdd>o${tC|u2)eI=7LgBPaj&MR2DU3MlAxL3}To+@PSfKEj0Bg`-8Z3fH=GzPDq`^ zZz|!yD337_!Lpxl`}B+E!Bza(JiOXL)(9{slRw+31V;#Gh;%Bx!AHdC#d9=uMs7uBYY#7f8 zNq!qqF{Nz~o{lG#Gzzgzq*g?|4B<+ zEWF9A`ivICqwO0P?d_C@_s~9?hy}`JGA$5aXF|Bz+_}LYo@Ib9O#Te@(yL94wr^a@ z@5)O9C|qRRiA9b`v(a(wG8u$p&F!N(@Vx^4rUVN&NVacG3x*#~3kFb2ZQ>-(0yUL} zR8tovzJIK(SiMOfa>Nsy7MIqOYRQxs`Un>XyK=In9w!pEP&J0j(N5UfkF81m(9f{B zUpCca`5dcfZGb&(Dv0uQ{yS{-AFt;rmYYh2YqY7IvUCmH1Ki4cxkO&wA+#YmSlKXW zdZI5kFM7iR(L?En@4u1;UyV<=>pV~vNVK2R9#MV8X4<}yUu)A)lu1f1JgY&)ow z5_7V~j?c?QK#`{3RrjJT0R`rWN$&3W{gCQFh&U!TVgfp%s+f(hFK($WE=mTd**}k5X6E+ z(~6Lr@7yyEy)sx&LiwHhMF_xLypHhY_?``(P6$QAI_jIN1JqJ|6=eLt5L1RrnJ|7? z#+L+#FnFpD$!Fn74#Q_dgYY?DTg{S0dH(acEwLB`4+3Dc5q zmMHZzk;@t9Ra2cZ+v-}Pw38P&1Z!PI-PTll@nhD9fFoOZ&7ZeAd*l2L_mf-OnrJ#b zLsNV+eM*yVp@`=>V*8i1iJUN{*(r_{n^*f{+E<<&m+e}=hTG<~q+L6GbQwx++{m`q z;9Jw+O=<9LY4Gg`IxFbbuhd@$0l{rogLB{vfU@JJrfK;Q+SCtW0{PCOnq1W5g>S^$ z(jO%0aJ|;FLMGj^_NH{$K*$USEJ7g~%x&O4p89g=`_5ME!?_;AhTV7vNXd12gT19z zULr^e>ib|LtGP}Ph7vCuG^PKrgcH5YQ4ZgPgoa{n%3kp>+5=m$NjGI5H8L|UxW|eFZpOVa(idVukx6!8dpmII}N^fwSxpqD6FX-^v&`8{chG;GDj_VxYME8*CVEjJ+Ap=n6EeIG(s8 zl|Fs`am)h;tf%m=1L3!jCiq=mhcNd-Bm;rSL#x(mnyXcCg&DTiL<}vd2hN9^YIt!i zyrdFdTn8_yf*04oODdpC7D7MgA4JP1E6*qE%O^R+C+o>4+Y-yV7eNyAL=G#C2oY>q zdu&BLuSUIgVbR{Cc_-2Y*P@S-Q+$a|IX2;x0D?OZE3AtKjz<)|lfJj&cJRntz_scf z2zM2|vhFf3j?HaTRHq|-#zPr9zH+r!cD3hZxxO9S`dv-@6(r7$+r^zM(qUJBVe84D zy4GIU!soVkfmZmWh2;JdlB_2osQQrJ?op;1>e}_SxW4t@!t*70Y2WIZjpi_n>elqgq+{b=S7_G zrq1l({Q%nGQy@g6(p6v+^*u)2*PN?)D9GS&!Y^>klq63vO`4o|P4dxZ>=}IF{X{46 zDY^_{8o&G0J@C&_C&?dcrjC_)JK9x8_6)6#h)bB}NhzK*k1}8_+fVXvKH3L4Kz}a< zJJBpfUh2W`I(y-RpgZ}X^KXhL zKcL9K#tCj^q7ODFA}`)Ij(<*?<@O{?TK?o&zRyw?Ntxl(49}7d21(a0MSfB*VBw%7 z*ZKQ$Q~=+9`T~lV`}uRSTqeQjr!jEAi=K_cIaxlNn7}*HU`_gcnDKR*q{&+rtdQ8H758d+9b(kk_#}&OUbB?8APo95QLlJRVypd z9-(~IuL7nFdq$X){eVKpC#8)~N?&!6Q{x@v5~l1ra!0nvu2RefT!}Fib77XXVw(hs z3m;*XBy!hpgXsn@&{DR-=4z?+#8fe{fHcv;S~RXnm+bl$-UH>Sxx)nrYSN@)L?OLh z;F@uSMRK0yaBWTgG7(se$h^sce{^5ssU4T463GNA1jfn84$v&SS`s5+RG6OYw%mzD?HNw4FE)#G0E0 zg5$cdR}GzIgl&BQLBtlwTCW#EoO$R{h}O3T(+ZB0{v5=usLk-69iX*@XUm)=J;lcZme*z=A!50Ow|H}YDQ{zz% z2hxxJNao^CmA}D6y%S=b^Hup9C^eaZQrjCSyQG0q+Z!ll+d!%94HRwRhEPtxOD%7p z)K(@f)w+RFC=8Tp-9V|=4U}r#Kv{DGr5-m>a>_ud#|@P2Cs1fv`8r_mH8KNU%HS&q z*dyd6m=$~@;Sqf3@|U4u=v>oGr>S7iVwMhI zBMg#Q8PiE)b(4ceSK{S88wX0chS32D!yW{l_1BReDvZs4wsR)-gRS~^B+Jb@vxe^i ze*qZrac_y8b(V~7xw#VaKqh9ciRqhhCI+A2o=jBVj5w}e;vUS#^~Z6mC5~T?iVN#o zZQ}a3ftoXG`0Cd~nP`E=DcE5o1zROX&`)TR!e$D5vhOjZFxBbDc5IWt8^EgAL*%6L z=Xw{$~jQLjBgt0e%hAj!Sp4CD`6kwo5cVbQ%xnyfec3uwDG)y0(Vl^+Gn z=)7Ac$P7cc{^y&l?g-z)PqHdPO3{-A2>6qZgfpp#(cq3lp>*1?vl#u#myr*SD~vw; zu&W#_+j<5H;IYG60k;nOz)Ck&t&qbW6rml6WZmMGQ)5);sy#>7Vv3f~T3sDW2Wou^?#XF%i5Vk170<^H^e19?zS|W2V>*9!t(< z9;Z2XlgEOina3%Pe}cz?r5xgLesZS>7vBac2oxI>XKUtq__dm z>W$Cvd)BH$^$b5|eL^~(QlmAyu)E4|fJiyh;g$*bga1`ux0z=Q#u;chjp|ELIgOID zP&B<^L&xiEy5RavU@&X1k1<#$^BRw*&~Gv5$kHNh(bTmeIUQYqWL8I3Fwt}iJzcRZ zp$V@6gLJ`C@ObsTV)SF3#nEpgTl6dP((FAq>w7rxf$vo#5+_mP^}PaS*(56*1O^=Z zh*v5LSma~zI}6DoUjd7Jq;6*+S>!9|BIPbX&A#fT*2!_;U8NvaZ4RTl=1(Yw&lP z)1przYeMw*_yYTS9qLj)6!vxFDL}+u)&QM12%UBph>8zRF}pFp&jcx3u+4!N9_=MZ zQ9)T6uV=lC2|q%-;lr@bVbn9@R_sOK5t}<(Q|UL17h-Xy6x60w`e`kCM=`+ z3Vb*hPhQW)rxUJWdvt+zTkaygk@BAGvrw|mLcw6D(DF6VGKTM}?1TQqk5I<@C1%an za;DTxN3tB+>b7+Wc=T43GrdK=%;0-{{^Ek$w?w~xjJwXzef0i|%moF-TywJA z#AGcMY0lZun<$IQQu)*Kslm9Q573TKEwq`yY5kz0X^mCl?7M6OtEvpYEf8B?r053;lM`nbt{n z>+w(9YP0_B&)SAj`64M&*2uQ8T6*CHS%%K7N)wmM9|OYe;MXX;@gqjjCj)NCzB(|o zfHJ3S+kVs7_6V~g^~aDp{5XFwe6jW86o~r-!A2+y7%M;l8Ap0Z2kXT0H{nTtHBn}> z4JER~f~F)ZO-Aac6uI$4q|0+ZCL=CD>GlYN!kyqZsF6D1<*>w0n1(yPBoH$c&ofvN zzZ*kxrSS_SG7$7#zDX7d0PxEgAc5z`t3^W15ewYn%{NDOlIckV>~$m_TxE(gBs?Ed zY5WTBX>oj$;v|6L{w)Sb0Dxy>fCO}X@GS72f8&W^9z#sGlA#ELd9aLXAVSfNPeRN= zf0Bfxa1XZ9`)jo^5O$?9#X@cH?dr1Dq)5kQmnr4#qiCP~nXh6XR1phHt zOh<^E6m%OJ{vGdzhE4X!?-<*GEvyX8t=|dxY5X2R4u?!B^hp4K-^Kt50KiO=LISEM zapr}cbKIDREfOFNX2T3c!ws=4M@B&j)#fS03qQ$@^C|pjBum!{Xx7>sRFM?Oje6a@ z{Z?s>YYCa$qMdBy4>5rf5Iz20(D$|p^x2Y>1!Bx#;_zFf*9q^#LzbO9aTLSh_@Xt) zy?709N9T*wpurkIUGZs07p%u}##ID;5PN5z1AXFIzN+yT24y}|ci~-X{7v4)ZbbY1 z8E-f@HX<2DB<;w50#^Sk-FG)*IQ|>$0Eu?O|6*7YIpOmRGbsh(uY9uWO8^e}1`!+d zTyOgkc#5kCu$E6$<;Ae;h=-2xtMGwP92tExY3J#C5||hmeCfAb%j&mawT2#Q08u1V zb7(lc3$oCb4?m4Z5u79H;kkJe+Ms~&Zo~pVBa4H$*^I+dI(i^6Nn5JGKp zK?l9y9IvakuJ!5*Wa00qqR4^-44vcw7W_)HWrhYvrA(c0ol>+7CGjGqYvegIx>269 zqMh>WjlLq!ZDgEi^#4M@4qitdpfJ8kVG>ZDU}4a5NTa>Ap4pP$YU)Vqi}Irl4T%-CDlrSqaSyD%Fz z^G>FwZ6fS|dBCS#4&Q-?*h$mSOW#f2%W2OQze3TS~XoR7Ca#1aLS)GekCND?jqT`a6lXKAp$;;XJ`lzU6r69zDjLQ5t_&u@A zkAr`H3OH6PCdG4K0(Zl2a6rHS7Jnf%2eDhtF0u|ZaoH`rdV)wLQE!+KMH!UkC+TJ} z)0yFJrtO`OA;I;!2~pfXv>EK(K{+Tlu(*caO!2LqrBC?+4L0B%1bWNEM|s$Z&__Yu zGgn^HJBs@=-RN>K*^3?}tCy0i-0E4ibAqg@N!-(zWIcW}NqElX((M40f!@`=(^8!t=_h3Q(6l!?M*lf|Qw^9x=&%@?uZu*x^~* zu2KJEwtCFMwttZIrefj-gXY0;DXatnUyC0ml}^E=vZmgo!^oG3;}YdF9hX{31vmh7-thuMa(f-1P!iK$7S058s@-wJ^|H- z8G%7(Ld3_XinxyvFxMyKcwnlChZ!*$OCFgj;@gbCw!{f#JULawvy6b#ctVcfP8EUU zbenf23Ms>@8B;~{PZhC*5g6Sj6u$Sw2<$G4)&d;-h??&g#;rdMn#T^l4Uk<4pXS49 zv=KJKUu-dyJPML;C{gb*O0=2;R7XDvopu}arc=KQ)}Csv5NmzdcQm*Tqi?c5saU@o z4uQ5j?8e&>y@l@M@Us9B!i`E>W)gA_AYOPkaG8X8aq|PyiBQ5rpTGtsS2rkeJ5%xz zb$f(0(t^Fgf$YYpc7x85ayuL;Op%&hPmfQr>xqM&`incQQ!diIPBvElmOZFpjvI%e z{v)10{oEb@!@4nwZpMF1`*>&x;*Is+=wcFabL$B|S z0F10jUJ<|;eVt_*=%%2w+SSebcO!*{_@m^NL!h-U+1>%yVWn=|`y{gH#Z%1XVsdBo zT?Wtat}XEluLVh~^D#g+HFQk2FYMR+3K+M(Ehf57@e8EZR8lMApGLpS2fbR4M#Cpe z7gz4ag>#bc2ajDc>T-NLp`YhNkhL2gdtRJ94$ zzq8B>dXpzw@LR4+3^4)7@GX>Q6pGVFL0s*^YT#J&$HYeEyGhqUCV<+S!V_jB#OQm1 z4DJXBc^C?fS*WwWL(_=}l@oCsht(-MWClU~N0LJm;~f9irQq*qAQdbPv{X>xfcK$) zK8^~dbIiDZ;$=n+Hq)HAhyDGG+>uZ46rLgIwPq8!9$1x-8YtHhcL*B!WgTn)6HBGU zf!jg;I+SMVy%zKaWwK=`7XJY@DB?r`wmov*BlyM7SMd`AAJ%Yh(XHYl)z=u~eH~u_ zx+t6gb=_PLB7(1##|VXuCK$tPXdGlZwso5^?r20bru8aTJNZ z8M#mNe-(b*C7DS+A}rJr2LhJa0C6Co(*}s6^lY0Ft;ol z_x}NOOqeF)It-J^dQ6av%76*eWSr_SnM`?tWE{3lm|%ft(`|iXZWis)UJtRu?T?t7 zg4aC*eA~8IUX<5x?=fHo{>JRp{TA@9j^n|_AZgtDw$x=55U>h9hJKMd`HyHzP>u~E zluPTe;`GXoA_7;)gOR%ysn|e zWDl>>ol5{QoN~&bXB%$9THBSILP|B3s!O z#a8sxA=FFGjCeS;>V3_g!SbaIG% zc|q>kpt)no)^N=bt&(!N2dc(pjST)8@_bPErzR2Mm;gi?N56y*u$xYjyT%z=(bO_Ght`I&wVH z+iZGhkn?oTN6$nV51@?L5L>JSCYvel;b>$=j088+_%7`3nj#7b7?+=F*U)MB_lf$} zG>*-(EFK*sJUIua=&Hr3A4NPA4Ud6DRy4p|Zs0TMs2%jy{iE3G(pldTHfnJWYI#Ho z8fSuYH=;0)l}Q_|^nC(3hgT7&&;(}~7TVA}9{Iw=XpFNEP-=oR$cEUnB{s}H2<9ot zevTxtlihkn0n>=pL}d|8aIQiMn&4!})M8gCp`RZ)6d84#BVQQSQzsUgD-+Wa7(x68(kx_UH1s$=!$t-Gr zGnybudF+ic5z1Ekn;#C!E_R|IFs4*8sXvjLqFT%-x#1>!sScQzyt~lUL+x)8#su~^ z31CwDo27XI`zM2>;()6YFH;Ica7WOw;jM(2~v7!A<_OyU4P%e`R@8f1DQ;Pk~pgXdzrS>-k zdyie()Cl5gQ8 zX;V#JlUk%FLW^G1{w7NxeO3QkR$_mXao$F4 zYS`ao*N{Gb8q!m~i2Y3_Qu~{9{V(lrDn)s|QeEZtHwBsVHMUG>ViM?`NDRgPrquo< zdTD<%phf6gQxeB+7s+^9N#r{E2wwUfZXTV9fO7krC!_K>LwE{*;ws5bg`4&_C2EK< zilFFsr-Fw3iw!ZECX#IB_BWXi!b1QH5KSvQYwT|_j@tQUM3nY7kAnj%g=-joTx^KH zac?DKR~uhKM<*=(GE#tX9auc8nb3MppeKMK1diIcoXj2MFmyIJ2%RU(6AcgSZwf{v zc!1FcdZKA3bMG+<>{`^&=nL`T(?}E0op&6T3K`yz6@o5%+Mk%JG}i77U5k6jWK%dBcMgy zVufdwqWJJSQX5K<{GtnK03GWYBP+Aw3WBgRSC6W@R};}aG5=zC;xfyUAmlv5z?5I+ z69>;mtVbQ{NdLHdEwW>i<2L*ZpNVqlwwTbo|-g7{FcrCx!hTV?VMDZgm{|z|3aV~(w ziZ5W{XZTfgs)`(UuK^yzXAuju#5w#W)x?1S=8^z$0M81CQyD1a*;uBnE;)2I5@5O> zOSL8?H)bEdA!b9HY))|?fGGu(I50y4U!6e`;*Wjor`49HV?)Hyi(xS_HnbT|8gO|h z>N8A_2F1PiAYcsCk+gB7#crVTZj&>2H7=>(Zzk|P9>3Tq#T-Xc;+(vNnjXRYCy^P$ zH8%qG-V2DC0AvM0LX%RM)y|y77G_LfqIZplS%}Bm6L`9Krp5AoFAFAVaV!zW-?-Z2 zs(|A6e!v1_5!V1qt+>T;)-jXfNNUCl4GN0SR1i$u`+(p#trT88`d(1)R}S-oFB>M< zLRgP?L|K37pJ)g$EsU|m+fySOfn{3-Zp}`?F-HWmJ2K4wUbH)EU&N92y!J)*_YMOu zPDpybQ{ckfm-oP=kZiwpoaW{b7Im6WvTvH3C%862wvK!Cs45PISC1`<$GkTIs+eA` z9&4Bo&s=Lt=?ZX8p`h?>U*X#GDHV?MDVBr&5bj*(GO_BmGg8uGg{7&Gk4@0jq&ni> zQJ}LOENs#U3#X(L7cwd7pI8%kP?7g4ka+bdFiEcd2EH2F;KdLuBo1FOi*@tmvIgAS zMGg6s*)|D)iJJEzAb8IVr}_D!^rcWp#muTUl#jF#?`Wyl-GkT+cvGb~9|_ZJ7c=4( z2qzCGq%!5PcLuRPL6R_5R%Ae92r0fK({!r#2gmuLv*(10_$_E&%7neB?}K6g4JA!s zz3FQr3vk38)TwEkk@m1k0>d|h^?+NzS{2#}#%?f`O}77H%xs=uH4+wWAb0S%d%0W^ zd=@!#&rtjIF{j$ue4*mD6Z|NQIVC1F2d@jK>6aWDAvsDTE)H{impSN{92y}x!iY|_*X90@m~*dnE82^HcGMca1o>md z`G_ChMrW*enC|l=_#h}Ud_JA-7?^o@2c5a$?Go}kq>GJQjYIdt7a)L?*vemydg4HU zM10(K_B3K7WaLsL^uJ8j2Vi5eNPf0jo<=eteqz=KU1Kdsp#8wY9npONkf5 zf$elEVkz$ueA}O$=rM$P?+=KxayjcXwJI+?hL@;Ol-G(_E!De{ED@=@E0xZ9zhshn z?~jB73`r2Fw>S_$LP>x)c4F0syf6W8*obkwv2bV--mnqlcw^zvB)nlG%6J24vhiuJ zE#_p=5BaC{9_d4?dbAL4{QYJA*OdAFGJmnmKTzf$Ec0Jc<_D@Jj17_>hb{sgcLf->2bHDw`gw z^=S&1_2@?AWt;XhWog;yHtmM8w4W_Y%jULe&tY2hJnv7$gz#fd0p&nl&c<=e5RYH+ zdZ1j@hix`sMnefaHs6zpC*|yTELWY9I$(TuJ}>!}O!J3OS^r(E@lTQXa6?8wRL8vM zP*7buS69`xJe$r|-B*+5j#CV>dv=<8MX|z+RNVbzhC1wyXVX|r z`ig;*$<cjOC%b?c^`Tqc~&@3cF{tMG5`43z6+B!a1n;VI)F;)q8iMAiRU* z-G^VS-Z6G8Wu~8+*~~YmIg5_d`5{VV=GF_z!aTO1I|L|Sf~EYEQ2xWhS0!`vA)*{i zhv|tIj{yaAI?SOlI>`nM)thHJO~;0FUFZl7lA>+`&Dv$4$9o*iBySa9c~SzwVyKvtPY66Qw&qLXgD!JYJGr>RZ@Fz zOxm$7k*lk0Ysg}6^u7Vsu{tG*vz1_Hbbu@taXX(fP~L$oI5v{2OCblCUvuCv4I}Vw z_jbO}kmco(rviHeG51MC+A;2UXXl%3yToaa)d9Q1#tM;)d5Z1CQQ6l!k<$UPDAtNRqQ)*E4^ymPX1tgkq} zjr`gZb|}5e6ln}hS&<*ID(0Mnx_l9JDMB&8uCP|gog(!jsfk&=#jHA+lBfWsr<0>N z$ED&z872XSQTZHm<^%SZNT;~>GjL~n6C9WWXBNdpdxhwQ0U!a$Ghuor71Ae*V;GQi zqVZP4cD!i3IQZw*0;`m&y1$t~FERbM#%W%p`Uv;`F^}W@5ZKkejhJHhAbvFIW&w$U zL>-)??LfM(gmfq#f?8D*mkq}T-Efq~PI>o(DAC=&V`Z@f#PD1+c3?JoF6fS4lHv*Nj*PF=FOgG-Py9&6ZQ!9QF^ME62Wh*?J|V z{7}G@Dh`eCT3DBqGU}_f6cv*->Gq|xN<_(xi{C1_1toAn7x2Iya3g4fCs-Tslfpam zm!(DEVGOOTg7;PF!Ed0^<R z%{VxMwejp}y!Z*A?tK&=^tFWZIMM(g@Hc0#<~}AC*l?whcOK$cmMk)>qpsz;7IkLAm#fz=LxDI#QIRHTBDOK9ehZ#_cM0sbXrlBT|(?zdGfo)q6 zA@tzcy6S9|>5Xj*RT$rb#=+5_rRbslzrwBWlJ2R%P<{n^Lsg+JdiSy_cj9?Cu$OMH zi5oG?GDN0qL=_%IJ+U8pBFsaL0b?tp??oD^z0$z@6AEju!$}#5AOtWvfAj@HZzbY8 zKi5iqEJ53=`W`Dd={q4Od2>Mq1pO)!)PkTH%h#$Dj!O#f5X3Maab1Al!c4!ihX*p4 z*Ixmr9GK9@&v8|?nIb!nxG03UN3d~kKEB=%QnWtJUiA!et7Z`Q{s)9YP-4Fgin+f< zZ8Re8{RPo-I!|Vtlc-fOqi>a|Rcpg1SB`M-q(aoqUn)f6K)@awAPxlVwE^N#y?GPp zh`qb)?AtJD!Lg^D?*d=k*H?hI4kMJe_Rp43JV;MqN0ZI|#S(xOMFKmToF#V;Ax__l zR>Hh~hM=J{W4z8$vaY)iInbBi3|<)SAx^+eet`?ep}F||Ci_o(Ijoh$2ho>!dLFBT z%$bxg-mJ}G-^k@qWrq@+rtl8~Em>PYAO~N-cHa{Hz0bbPHDhEyp!wG$Lor}%oOp31 z+uBiZtVA}g~9L#wV>8mx#I`~sQmi^5QYpy}1%t^zUDZd}l3UW%S z!F@j>-Clg!rfTlPjAj;hFFvc^1B%A|2W=5Gn&^x0r^|}4hZ$$4qeY}m5&I%VJZ+1J z`^~)ucbslK1=Y+gJH9HCy;Y0rL@HULQ14CFTNMG0OR;hP+ZLRdI$jGwr$ASZg2LJ+ zxX}7R;PM^@)FsB|EK-<{BWJcUqCb+xV~$47Ie^H-t;`|^rOIlKfqXgE+}U;>RVvMN zJ~9a*GFmxEXf;msNkvyCf$$2~@=i11JE!g%cC{t_Z zu0j$Zj-{*2>J#*kbw&?aW8#NH*45^awY>Ew{8*P(N{o_xk#lE46$~fZHWwl)|)NTT~g6}uwo9SRLpt0 z;+r4WGoS2x&`%s_i8#*xUSt%cp-ixEs`4;EZBMs@>S2dqk3BAaN!I_W`w$7mI@ea*^$lDBI@wnu+grvD`(s+8xU zrzp?wV~xqVt1v0&$@QRh>MGNs^~A7%(6~G&PZYRje9#^v?&67iUmF;06wMJU)fK} zO;O-%thOqEPixny(XR97=jDDvjdq=>*{SF{Q?=`)c|=$ht`xclHcyQx`8eQ~&u!Cn znXxnKs-jp<%TCMrKNcLOvGt}k`qN%RjHa>mrZxMn`UJmhmFQ#j00Vgh-DnNu4p@b6 zXFAi+SvaiEfZP6^4+j?L9Gt|Iea=PbPvkGIQ($gy<6@ zYGBBTQ(&CT#bFUNbuc|QbG=iY-UsZwBY|BO$HCG)<}D)7IXTZH?IKJ(*YeJA5XSMK(f7!?vN#a!36(3K0elQhTv?F;02;jZ1awjeJ4$~nLvZ}}gMLuB8nYB~ zX-z8Z3or_CcC`61kmUR&LXTua)zK_;uUD(DDPaf(?TdN=;=&F98;P8awr$l$8$y;U z|9*T!`z&q88-zIZlaARw-GqFa31yJMVOktVUkN1J(r_x%S1Qxj=y*}7OwXRi@lCdt z;gL%@R8ZSVj(!yEFDsVy?uQXDKtCprGnFixkv+=GqJkL~c?{&Uaxg86&|`CI zHQQat7SYAD&(R7KT6r2ic-eC1d-YvI&P}$ne+l2n+^({a6txucnhS^HD&WqJ$NJVa`X5ps>U$D66hU_At&7kM zYYK)jU?DP7m>S^{ENfmF_h5c9Q^52z9Ej`N)@18L*%K(A%^ew|hBht7Vt;!ze7`|% zz?p_M0rkkXG&JjaRbL*2`ckhwdPa5zdh`tK(b>vX|G;?bKFj>Lgm?1>wH51(eL>7JVWZDnI?uDuyI6cAqrrYPT zxtxFZ6=aDV37Kp3Kd8PYXs)LNAB0&-=0XveM(ldTwqKsjq}>kzjY2w&g%334#R7k} z*rcm#$TsBs9|^>Uh5%wiqyHNX18-*=ntkUWF=&{XHbpkf@;7Nv*m!MmKp$HV%hnP6 z8?%i$|09yLu^|f)-e^HL5_F?Qy;0ym4daT+m=jB5QbSF-t|nVkxD@XKUl@hjlx@oS zj|tSK2Iyc*!BKLj=V-R6(LeD@BHPpig=3kpT9YlMDI`#~CYyF2V3VPQRikKus#RQv ziV~+e+nn<^3bf{iDg&&!(eKxwrqYs|VN6FOW+FnFym^+}p(5_tzS zt=BgJ>SkwW=ZN8Kt?_d}Ythf{fo@he#bATP6?Jp6b8MC8klW|j+RkBZ=h)iLk=o9& z<<8OCPKnfZB|t|3w`5y#{^~>IixvWIv4C3$xWxi)!E4s=&hk0wfG%`e0 zt$NtF=Pru}kZwM{BeoyTI0HL0H%VTcri8(gIth1yZF2wn_`MO4GwC zi9N~foHzWBvuT~`YL0VR#iAQ3%)8B>ulV|FW9vCrz)k&l^S{L}dqUhdCl-GqagnmScII~8(-yN&%9*>?^{122B^L~d8SAdzi-{ZF(miupO0y^Fw;KN$t^rZJkhC^-t z6Mw}nGuIybf$NXiz#0EXV84Wnmeui=V?7uqh3VP4RIV=FwhnuQ>H9GIh4tG^`%;yY zR1%V6{IeZ42yuT9=f?{5RiZO+CF}N{hUM6bNRCa*;>0Xhb|1v2PLmCj9QwVwcPeaVVJs*u+8 z#CA8)K38F#e%R@+)H{ivg)^Kx)VIR;%@V5~XT}zoB}5K$sjzT;f*fQ2&t{;^Ty16H zvPxr|<^o)%l`%QdP}{aqiZkOqbc3A#9Ev*%g&=80TWFe@Aqi?ygb>;6pRPeFbSX{h zA*4Wb%xYn%Xsi`B??e%K2hu4df6i505|pt?EaQouJmy4ru`bhg4Ag*NDi^3z4a=v- z%t{`X7a}WX?W0hdCR#RwO(U87+qn_vK~;FH4O1$PyRF$oYc}0l;i93PHBR-}&I0XI zKXx)dcUtL=IZYMEo}+z`{0OFX9z)x?ujhFG27EHf=8kl7*7FrPSp!Er_X}Tz-=88K zPNu|L-34GhSgfu^@|w1M#0EsQHOFL(HObzY>1RKlpr2tD2c$5^;fpPWleM3%9mVRr zSsN$0Bggn|q8H2g^4l4gmofEDEY{)0mapKOfDtW+dtlj-*C9vy7JWy;g~jEJ_h)vr zwmC*VU~{5^d(DhWd4FMoFXCfxerzI~j}WE+wsX)%r**C3{-D~eEHq*pfFO+-OTsng zHtXFj7{LNVn+9plUGD+TZvxJm2WQG(#2)a?B*aAafK9}Bd%zN5?E%w6d%(Bg_eJdi zOTtO)0dozcj`$8Sm0N>4hGrK9a*5eRGnYl4Iz0otb`-N%)6PuJy_B#G<6@ihX8}D5 z>kKVV0oUc09XI+5w46-EHN3(7D-d`OLo-Pimc4N#g;umQc?$b}2as`WQO(G$tTg8m zX}2G}W(+!_1g%C_E}47JLIv@+X_HfT3&4uI%i@mNp~0P*%W)q;;;|6-b4qYOMSbqy zfh3w4JL9yV+u;7A#NTNArFMX|64fI(VxW~snM%}X5G$c#QWg;O4z}Z5a6woH*eI)` zELb~=QPb3c;G%Wl+58=>F#hy$-Olhq-NK^Kt&i)@z_u2U58u^QV$WVQay#*SFOZUn zTimUO=&%>W0bAEM9Or}+oY|!D+EI+I1}A2X;>2@!ZODUhANT4pigMSk3CCYZy`+3) zIQ4FVKgO-Ln`sRTwyh*in#xQo|P6jW~ESBXro~y*Y2>H|G{+E!>+S>N_rm?a@ zxW+K8|7bLJIE+rS1hAe0tdTpBY++rcoZG-g z|2he1S>U|@0^$vl<|R{G)}*$7wdi2DWlKVkrez2OqgJz2Ghj06s*pzV#&&(iKB!%99@MVEQGmCQEu@EoEiji$_-ld51Z)xX zo4Io>UqDit(wQ;J7aYIKWOXeH3T5@ZEa|0WHKdt=&*X%E0hxPsJeVnD+ERN#8hxa!@jSun;C)a%tK z3#C9WY4CpmTE$dZJcP7~;#Eu+o;+A`1PWiWL2XX(&_TBZG~tw1vwuk3Gh;kzAXhr{ zsDS~3+Ad-7a{l_GD3gDqU`|7l*MlVb2+$kg3adB@S*1zb>wwJYJX`nCpO;2J4^yIy z{<<{csP&Hi%DNO(RfT~(`gCbTApnJ4vq<66r>Gi!mHo4@AYPa|LTt@zR^rB~hAyy1 zcfOIZ-Fzm?v1F4d#$zsd5dxr)yXQf8hzl2kYjoT6+<%3bAHe*byNef-@RG6ICxB;-xVA)vvH2*HJmj7XVijRVa4v!K! zqqxX=;&iGq(GWbgBU6s*v2~ddvX;O48XjKd+N6IgoFXXosMJ`?xD?OX6fzg7=k+Ti zFOGMrPIcx}Zk2UgITr)wEbX^gosOgWts&c%b=h(#I#;0X1D*_R-&|(LfD1SVBmlBd znZkT(N7Ai?2j-3zV~wZHyPa-l4`xhjozw6N(t77~=SpWg z?$WJx7CJjyX5Mx^axWa66^E9a1|~<|h&G`F6qzuN2$X>n(6T6&bw`5^T}I2(Lpf^9 zd|Eia7Fx2ugAu3267IcVI~e;^>!dg>FE&2Mp)pyTikZ{a(LjEb;V}^$eFGpJZPTix zSzK=&4P;jtBoJs7IF{2l{^ID^n@Bg8Pr~m@;5*p&Vfdn9IVh34 z&pk>3`v0a9?z@rme^Uw7DZ8DjKCJ`!tOIrUKcI1J5cD9Qr9rJq);Ui4O$Gh1bu07> zNb@Y{!Fy`!k(YlwpcuK&TyNSynyDt%P&@)~!}Mvb3kR&PB zlnsGgh?FG8ub8Yu{Dyc+ro#GoVXZpNr9~XHcmQc}PevM6cQO-6S?&8Ui+f^%8NG@~ zk&!W{!C82s&gI#*KI-*sSYA&_VV$P1q}+@Qn#8$oa=tRxCm)#r3tVy*;wat7Ycl_w z?W7lKJH?!O=j1Jl+xOyyC58sa=x^MEVufS>gyE4}+f$_wD{KDK^B^-WG5-wlvM6N=9TA z&ekJEf&Gq2!xh(`Oi=rhHkj+QovrmeA9Y}9T8ueG4BAldz-pEA+W@cC5Ymp``HAF^ zQ@xqCU7Ft<5GHy!J&^&G`~Go zU!^;mSdqn!CaeSl(&KnxYhfn0)G7V&Y3iKF$2kWI|hWvXQ zd~&{490+*34G_o9*bvi?Ki!LzjG$OO5oowo7@#0U-^nn<$uGsKIAFqrzg`B3Xgx$c z)lp9kJup?m7_9I`quv7WttZD}Q&97<)&USq`Xc!_-@@@(g@UWSSC_0O7 zi#RL5O_vl_xn)lR?ZdySDrX_}1NQg1@XMMOE+o5OA+#A5+5o$Cm|NSI`KzmSF39|7 zc8kj+%$>Kn1()!cQxuS$;{%Vp=w>in!P>>#esx745xdwi`aCY1*+nt8GeQR7P-n2*=pm3x@6H!>} zQsc~DqVxsx2pQQcEInyUYX{2bpZ3Xk!;(e*yM=>>$w8kCozKB3Hx}GE&|nS&%m+yL z_-!6C55I@*-0*w#=Y9I~e*BO(D7QX_-`}C#I9`VK4(tofu^|C4#EkcWdqQ8F7U>w= zuzg|eFdbE~A(p&6h4Q4JA(o?oOQs<;y|9$TpSF4M6Dj1bO9*;=$tuV%_(t<5>hbt9 zq;@K;%Ojjd7@3xH?tXtbH`|Z!-;)o`8`HGb$P#nQHd+*R2nx0`EGn!Tef6xGL9SMC zi&l*hWr(P3O*=cfEFMX|7w7yTf`?)ujS^sl0i4icLdPYzUZCWa5^|cs1)pcyPA!j; zCYH=QB!$N3FycmH6t2d*KLO*Gp>61wc5b@U;vIKR0N#HTyzTWTA_Z*t18debBR?D0`p6jf_JxMlAC(X6wqg9NWVM$#%{1M^^S;SBo_{D($#!G-W5FjZjt;8`BD}D_~KVLWeFD$l*;V(1%Q99j^ z6Y-N{&({qx%4ldJbI4==%{CiiN_$Y%BrN_M@Svt8M9aY*(bq%x!9`HJ*H!B*ityOR z7lUgQ!1)#-TaNcM;7?kN;hkD%#oCZ}7NDFJA^xVLL>- z04y2fz5j+L&>kC`i)F7mFoyR%Y6dth_A$_CVp}_njk=aVIPK+d&_n_!;eCHnK**!x z5$rQHg|Ln(hcyeZCPycLVfWIAk6R97HjM*Mj*7*@zRx*1j2})~otF>e2d@A|!dYBi zmpRlpydO^rBtq92Gb~*vh4Z6V2B%W?ol1BnPkdmW=|3iiWNFjTVDX9a-v1zDl=prz zDIg1HV%{@wLf(69Qa}+JP0V`+7I|-SbY6n@3=HAD$x*R&nwa;ZFdm<@Ixio_PhSCy zD9;!?l=q&P6i9@w6Z2jPoS(fiI8oj+a4heQO%BP@W@6s^Gcrbb@5xC4SvV8(o`Dnc z-cyqTiqL3c-ZQYsdy}K{61-<%2=7gfimlVcycdP>i%F~V@?re^6~Kt{p20(T@99Z_ zMCdv(@0Gy$q!AwI1}@pffMrHGm`>}&}d@b zGqA{elcVzzyk}qt?@f-1t<%K37lrYgNvrenVf>$003*tK1`p-E-%bi7Lf46TuLRDs zuMAF<_Y54%d;d8(Bukr#dGD{t80Ed^CIw{SOw4-*PRM(|n-oxlMicX%fkob%9G#co zJp)5{Z*o*@ohIhJD2zW$TAh~<9(D~+LWmQwFtnXucWBQJPGgPRiGXwOX19$%3zqFu;{{EOGl(o64~8tP#(FMOjXa2tzwLV7uqz@Cr-Tbhfs9iFX`Nql z2Y%K9r}-946W98cuf;-R14uZCCx>FKoe~gp8xext8?>9@E&^`7Hdbsx#PFx#QSQQu z!9(;UhCjmuSnp??*Uap<$A%af8?m$Q?psm2nA)SBkMjQ+l#k>4LEVA^y;mU% zS_}&_q=&53hyx6~kx}+{Bxr@tlG2Ic&*3M5ZMpdH=a~@z7}5Ik*bx2gi(^AfQJ9O3 zY&xVM-@gDyKO~`?`jD)e0V_R;;eSO!0DKrfw!PS=m4=MWbsmZhFG1rM19QQto zbt~BDofnTipFAHVEariVFrrP8^gf0(ZC9lR(c^iV$d?zAYV=K_8nJ*o@^1j9m+*M2 z^b&L)+$xRpR_W)&-IR)4Yr}E>wKp)u%=FPJbLJ~@*K`6@!u|hsPSrX3rV$&K za9a(D=;!ZO&F|OD@7MWzbIk1m4P)-5_{!}w|0_-4A$KSIaz~-{Vbd%w&jAh-8d``Y zgP{mBRyj-N2zZjE}bipVo~6u23al^uoi(-9E$=7Kr7X!ZiQwHwM=B z4!P5{kGroaDe)6wiC0RA5)hOqiGvc$ z5{D&5vQAJU-s*_d@jK-uND0#J3hnTMu>L9Av(+Z;-=UT^CY|x zB&Jc4%p&$JhPC!Z^Obeh(75z>m=sy$_xu2pQ3Rtyeb>a&%T(g$xQf0cZ^pRuK#L5X z8NQwy40DncgjK+CGmJ0M<-T$rq#o_K!7HK5=0O8t!$ z)+E!Hr7oL}?a1lzJhH;1gnI+v^9oXKSxZ%;>=M(cNv@^#ewe3h$>8hF2R^lJ$@<#1 zSbc33bj?a30iH_jQC-goX?jJ zD4`oB%_H9_sjEk6z^m*31>1M*~cDENAV2|{sEKk zfj;&lI7~wcmcx%R=KRu_xP~5$jVwg1hJVOBx#6Gir+)ay`tu+BQFwgVhHwj2vQ~XR z3Y2?yXcL}QfelX)w*sb8!6Xz+d|1Hb1T8VCRoLS8AbViS#qg{baV-vwZ+}En708H z*1N5X*smJ)S10`o0LUM@;WQ;!NAxq<=|S3iPXJihR=F6-_ZM zk1|hX&LL0&0K7r& zslp~mnDJ=Z!;FpBrCL(;c?uVE#~fM|w5RZ%FqB@-k4^=?G2+X2KVYaD_iK2LxqwTq zIIeNMVpfe)U$?-?(72!r_%y94SepB=apzXRg3!mEx20?eDESI1){2WT1chAFVO&E% zRq+*zTM=j=;^1%=1~|0d>6j<=4$X@E6V-(RXnF;-z!P4_fF_tXMOid3A_x6d>GQh~ zS$qc~4wFxh0I!79@lebhbhXH}pDJw{mUFd$ZHQ6P{D3V&>`0)9-%3Duqcl-7wpcHe z){Nz=l{+eL=Ea3oj^Pe_1~q|6q3SYnyv1n5 zn)Hn2^HS|G&@TpJ<4AiZwL`evdkx%B?@z)HBhw|}v6kVq*9ri&RWp{KV(y%atss#& zSr}{-TR~@_BsgG6X&4*{m%VYW*CmR3VZ!rpx^a6=EM1k>f?;wGN93lXSa}OojP6w> zac5Q#!kR?&%GI#^Bey;N3O<4iNd_{60s#VB*G+x}PcXXvk})zroe6rVeElT&JcHR2 z_K~%Bc^5H z@|j4LO71`aMUo^%r}=lvb7v<9?fE;Kpn($mv!0o8KBRvEV)uI-XiE=ei2OQx8_ZU>^A^*CDCK>UEVz;ZKjd9-pf8ZonXwO30l`tUY`N z;JmvSBsbjkRhcCE7fhNx1Qba-m4%;k>b~u?b1ulfTtN6y>J!q>c?TfAFf;rM5H>k1 zJs;A5zPQJ`pb`Q30_qzbg-sCEQ8>QgoQac0`%lkJs|t58pA%mJ<$t$Mc@ zZ!_ri7WV`Sua4qpf$kAX3*yZ4@eiVb`PVYN`0q$^ z;&E_Jcsn{0G5c0T{Ahw43mNgl2_l|j8UHas1i5pRw`j`?Kgx)oOc1e#Wjr=P#736! z(+MKZV~)osh&cAui1^tA5xCLUKRPx+#I(sG@{>jEV&UJP0Mwz$BJLO;5iHt2iv}}O z7M#FBoif8=5SCB=597Trl2&?hT{;=sE?8svTn@gAO$PY(ZvDdap7n$vj)csO4C z7$P#l0p6FuDRqgqjTkzsQI;G}uP%N9-J~XsOH{%6bnjCLV#rZs7-&Mb@IH-@r1uHH zG6~bdK!CIrklH^yi9ylW5bL7_C)*ZbIX5V{)_{vkxzKM}nA{XZDgpXk08Q$lcx#-Z z28Hn{IrA=6or8PlT-JAD(E65tLEW4Ov!AdJ^E~W6G^RNTK12#-+NLJs_1-P$yh-nR zd?A{iLk9L!RMwe-e4?Nh&qHyv-2Y|N+h{q6XaC!dU;YvP6#@KF$}M62xCk?~?UncM zMhXq_N8yxnzMAbFDB-YDDeip|MAplaq7$zK{CAl;gwIm&YTI}7c;h0##Z9fO;kYn5F4q^T+ZLw6X2Qh#J8X4Fo5|5;`XbuOym$Nk ziJmeLxyoISWgGO)1>59Il$)8jTu?qEYRc zoz>HbrEV=@O`*cTC{ekv0wQ(MK?!f0z6V{ic$h5^#NZ(zSq&vo$V1$h8No01N-)=! zGLA#(gJ8M}u~mZpv@Y78h$=gh3V3+P*4U!rRKzrt8id%bU!*qCdPdzimU^uYN8qTs+dztg!ilZ<35#UHhS}<9+zC<7<53VNMq@HSfnz66qf*wnJT|Jgw!cAF&`_@? zh_I|KdV@%Aa0XZjc}k-KpES3v%eBmPpCQRKA&Gwy>GF;UT@t!iigUhic!`v9QTb)S z6VxpZ^z!akH1*#64i??s2-9AqTWsq*x6i-4c5C4wE<024$XLu)T!;8;5 zg`Obl)M(TidI+527%(ZPTYxi+!(fj8F|-f22gXq^kKg?W?ZB*ayPQ*%+5tEy8+{tS4@BmaXh4vMcM`W^ai<9fQ+s{3@f zy)!iOOu9Fy`;8!jw~=m{4c?D$2B`yE8mL$?}RXhP=Q zVMB0YS?c#0ge27*j3dBs0iHl)4%9x~Jv)G!T%c%P(!+jGo2lriTDK;T{Ck^e?f?LFap zmq!>tYoAh^KiHCCV4o4dlRsLSoLhq>Hf*xvB27l~#TQMKFryV>PRUN$Jd1TmIoU>w z_eoCOxr$%M)#NB$>uesO8+%OB%-B@Y<`#h9R^b6V?rEvB+Z2V zYJrG-ICmCWuXVM%8nCe_tzNFXq0c*0LC3fOI^)zop)_2WuJq1D8Cdd+Veh?KdFE9t zRTw$7>Lw(suSx0CTd$F)w`!|wHnFdJzOa=s3J2?WFro@d9fh$xOt)bd`5WqMs*-9U zsM&u`gLL(dov%up7jJ&mwBZyBp8+a))a%A{A(n1U6tIFu&4zYqbAIPNEQUMLS*#FV zs=g+ro|v7xL4%~2;uciua6Js{Rk~Z@Y|U1Z?mG8vacT?7r_Js*Msm@tcphCyL;CR! z0OVvgp4%2v%b-we&PRd*?8~?pz_AUc4^u)k8acGo4q)s*Zvr6O0pz?A zAOU`OM_^tEC&Xpz1YmXm%+?Yx<8e`)F^l>bV`{XcR*fr}Dj}jf#gY5NK*yOf#h$s3 ziT*#GeG|IV!yvWJFJ#*%Bd_q%nn$X5B49)LI|)Ap7=vGjU)`Zh7IM~r1zuWmalR$v zK1b$`>5t-F@627Hb?0V5iAFN#d6;cKJf`8*rmu zhZyF%>>_NBwWtqiz(=;L$5tiU6Y=V?PIj9G09-wGOlIUC$l!ksb&H3l43cul2+Ezi z7?7&RoX`%4+&wvlYbey2-v;<~fbUPa7sR;)Ff*}2Q_}B%R~BhwB4%{Gwyh@V_t}U= zN&kb^9hZ3jVe3cS_X0OoV_Shl(tk1tO8O7&GVsl+bj?^(wbtbKNTsXb{P^F?omJ2FjxL+PItuQ7o|yge{XyL&p?sPH@HB1jqe82sZV^yzjD!u@TxC z%X!~}JMOjt$%g8-*>Rr&(4~-Y z`QNCIz*V6xPJikfY+>QOZ9=Vv zpGSz9vEqOkeR{ymdM-mEJzK>)PX8o*Bvtfm)oi30s7EEeQ-FA@bWL5WKe;Rq)^3}T zxa1TVGZs%qMmYtB$v;!zXxAD9-3mjYINBxa1@p^bm7VR9@=s;?a<+>#5q(@7Ao(gr z+24_%H^0F8Cx#suhtacL6>uTl5F>cDi+-N%VhTCiMTf_N%-Jp`lmT{_Ni_pnF+Lol zH!&Q?PwTg1L;THk0usXubK798fG$0^W!$W~rd;||X57jCafrTa1dYX1DpP{b0L`)$N8tz^D z^9hcgsz&S_D0nO)EJg_S+m=26!@dGy$rM7D%_1%FxREp}ja|=ONUC*?!zvMM-=fYr z?)^!=8r^iLO>=>|s=Yafjac0eq~2g_U$bKnK7_*UA|LZ1 z=#EGbAt2}jVUXt3(qco5ch5uf4%f1*KN|R$@zM{Q%<}8)MtzDqkPHFDzhU{b5o}s! z-0mQP``Jmp!QwQ4o)SxSv@u7e2|3$0y4OMsR_pl-?p)$24WM-tZ@*$cw6f8ER(-G` zm#u8}Q*V^GnR+S_L8{X2L4k(_dQGx%dd%HU&`Sk$ZBlXi5)gw)C-(wGE%IjrPL*z& ztVcvq0Hlk10jDmJj^;>fj)|ba1{M}0%<;=CDFuia8Px9O7XWvABQ_K8ZF4s`p zkMeHajNXh@h|5{_>5+&d^#pIbwf$`#X<%^kNF#st7grKT21$5v8@&=`Gj!@)!rc$V zF&F2=!tJHoM)c7`^L2ON1i$+_>$@}XVOi%cdTy3nG57Ak!(8_S>FB#R@SU#Z%AC#( z%6NSc&(v=Se9i6~;kNh+2DsJ^c^KQ3mdFNkH?6?t+E*A zOh|e9NE2EPGfS-B58%*(oV8BKJhB;iW4HI*#!!eetoEm3sr#gPj*6~@$j)b3%i`Zy z=%w|~CvQP5ifaI?xE`M)gdOk?*P9xF(+cpYdp{D!^1YT=~1xBwI?_ zbco06q}y`V`R?1`_4iQUTL+i7g0bU5kDD-bHA62fgAnshm@x726DMBDVDb_Bj{7G1 z%o&83gYNC%;S=1G=xi-3B@=6(lJo?vq({(Dvx$0a>FV*7SGn+Si>wyJuH-U$MJ3^CIcb@Aiv5USGbmV`(A3v8!*e z%RiLwT)Onw$#d-+80cTUWXZvU2Rpi?pbpR9yQEhOD=w+cNY-uZx16&zzh=|A{Arsv zt=q6|!{$v}^QUj#l0R?j`a*uo`g6BzUU%MU3@%8jbsM&B+p=Npc?>ZimUZOUb?@ov z>lpxs#SRmS%FHu0o0l){>+0>zAL#Dt%MYN&1Ks|CV!o?ycYc@Gw_Ee&_jrDOu-IM5 z``!J%w|j6G!4+)%n0R+jalr4{Imn27S24evrFQSm?>v;>+AYb8`DG};_XhXw%dg6N zd*JCoI&atDf$qM6@u+$JINWx5{fGRXz5538-od_ZKM$;swP)Z^zH4w`pXc`+mJ%&q ztWJ5Bfqh*Ad6c`???TSLy;5gGixM2V_jdK>*9-J3j5I2IAm0`#;f zc)-CR+0$J_VJIDR9q_&0LcYr&G=jC0LGY>9*-r{HvK_?+$uISl4NN9fk>#UlO2sdb>+x%I2N>!7<~}@9I0GNTXc_d!@VV@x23J!Cm{h`ha=RUk1=Ei>#lP zfI3P@ukr55cjc8v0>#`IGr5yavxl;Ihk}#e}6Z6!jVE8kcGU! zVkRa;UMXO4ASXZo8JWGatBCR;dD%H3AW;B10~kp~7|RkaW!E^kuLoiXh+0r+wE>I} z=(T?L73iGkk>qL6M|caKZqV6N)>i3Z+B@32EHsXT-9<zxzN}PcTpvyZgI*VHwg!ALcE<2Vq}=Ut^?g5o<~9fFvk8pUAtre3HkwJ0?Lj<3$cE;w0NM1_1*BKU-#cN>i*0L7|d%#|8|Ehei#$Yi7fMtu)W*n7x= zDGu(0=rpoZ8wtS3XVMy?{-H+&v;t}A4!fa@I~E$Uv9rF|P!d&WD6XY^vi{C)sB3#b z4GV07a>nzSQV$F!YMCf?h5WprR`V<{YJpV#jJO6{cK1S}`yPaJA&;im*#*4?_#gC1 zjy}}zzyWAOI`-t*AuK4vQ~|L_tAU~@kkWBPKA@kKNbs^@%EBrw1yl&J!Wh^Cw%!Zg zE)D=(WIO|MqFd#Qhl&H;2Z{kpQ?z4H9)wu*yLQPCYLY0ka9mWKhMh#}8>KvXB@in? z{m2Y#3!{XQ;?RkA4Px*Ic2eX4k)iN09XYa)$Ixsm*?pxQ%1Wzir5|cj?C;q%=nWRp zl@E0Jms1!*2?jKuN|Xh(ySv!4w@=0d@FZJ`7);EP975)8f>i0sNBeCDIKqOP7eth4 zuIn`0VTkV?p)o7WodmqXk*4z`Mon*9?N;Kn(DZ2h~@H zbLz*DzGy{LXGi`F>ile&(}H<~g6{6fZyi+Sz_9Ivv!H0Fiwf&*jG-a<&?FR!z+2`R zqB%g3L`|U#_ID3JaSS*SV?^)ngBVr|;QYRJVSys5O>aANBY!WPzIUjrci>R_9={vD z9;kpsX3OpB@9*Vg)$0R0NPobj(jvF3x2p&11DZC!eWOA ziwg3Vis%;=dK~%;>KOB79v=aONY&6hEL0h$>*>>0;VfPTIN*kwm9k{f0ujlE76ff6 z+H|=hI;j=iDAc@kjfp~)Z5RkH&|Wm(?)+|qS}qJojK0As=58w*j_t^Aff^q!G<8Vn z2f7Z0(ym-EK{g66bGa!f_ocK!c1_lvQ@ufG(6Z!$7T~WJj@TvYr*^r?q#K2>nLi0t zB20FmyIY%kkJpQt6gdD5Wc1k8;W+GeE!OG|g6sBjazzw%j)Kv$2lecOf@KJ5s%RUG z%a`LsaTf~e2MDtiXT3j#AD7|Ki63b0Ls3>dS(s!>=52cY10ckPxbYRG}$=Lv{QSp`~jgCj{k{WB__ z2z0HB)B;oZK!=``x=}b26Iy6iUO!Gg*RCN?#6+H7!mp;hE~^*j!*w$q zzQ^$)D8=4bQZ3OkFnv@JkAcG9-A;bP3WTgr74eHTKg_uE&_24m{EqxKus9o^LTv(C zN19z$%ylkKJynKhtiOb-;nZWw5HdYYB)HDijr0qLl&;;oDQ_{sI*1kwSu=`^#okb< zoM|TN6cjpWf+CduC?t;WoO$O_EY{Tq52)tVUCKFJG_^fC98#iiM2<+u03ey@gA@_$ z1A_08wJ%JzNM%UG!O|`UWRy56uY*NLI~Ie>*x5PumJlkCrmE%2rhsY*T(^&`Q%75b zP|Wy9XcleI1R0>VayYTt=|nR#O8_##_-!icT|sw)6ysICoCvtHASfcqD!w(Wi7XM?Zu>BI>8~+TVyha z9im;BRs=GV2!%xPv8UwgRu<=F(FO>%TaJT-v|0+9bsP6m4J$zWW0SL4~pbB z8+oeZ*otr+7>j3t-ou5oZvP7I98e8{7qkSgbLUqUjRQT?wq(FE;WXFB`V6KXvR}mk zzlb$eZe(z3igmF8513i*Y(gu`LV-ya85^v) zIv)GrSdHW46{8T+T>xzrt3ii?9uZ&*PL&z3EU|EU77+~6oHFeJ%4TJ)5H_5V23(al z*kTi9cb@A*wnjl?DnYrWf?XNt?Lh?O1?IjGQy2{9t=XF2uytO3?V7C{wgx1=V8gaE zH=nmHf5Dn9Th?sawqgC&JPrj!&IoKi9p?ddl$X&rPT@D}Qf-i{p$v|AwMuvCC~ z{%&eEX5}&LPqI}gBPnGUc5IYfGL?$hVbkebHf%a${WGDD8K5v;X0IgUp+Q5fu&Sd;Qq$0b59=_khos23f$7b_QVi zCt$2DtO_5HiIv64?jg#7wyH8{6L%fJ=>mwLu!_uXPbY-u6pHrl1|#@vG7MAsw_ z0BL{G>P7fLRa{vz2Debvlm1U48~W@C>4RNJ%yBdeHqLc~3`aoF2CZ;F6jk;EcF=&5 z77_IBK{*X$cIeE)G$b`vPr!#}eHMyLi4FyD7~oYKv7o@8(9Td!z>O?X^4V6FE)=q5 zfQ{wl^*E%5QFo#fdqy!|bMCoFv|;;dwk63zB}1p4rDqKpC+M)3Tli32x4q0PAgi3} z5TO(-N!YsX^w5iZtWQ8m)!D0A-eecr)6?C%yNKoNT@XE>At<$zJEYyvPv%{8Nw7@} z{fi46W-t_F$yg$7d-fb6Yhpdw&c!?O?mDmUnBe4sMTI3=@N*ZVg7C`%NfC>zU<%9% z0!%p0Av!XyTPPyG(07W5AnC6(>(08GNDr0+I`S7FXK#^vVw#!@j#$eHSG+Nf`eRk?Fix^SS;!CckRQ%Z!ifsE!fAr=n(!c$zLS61J|%PIeBo2VL~HM ztad@fN|~>aKR-Opns=EXI4QdL1gR&QTc-UK4?3AJ>-1cG;|>?viX#&G2xX>`X?D)n z4UUei9e6usr8Bw`9i#*whs)6UmpC$eHWoBDZC&4vL%1fBnd!cWZbQ*Bv65m=#|f%| zwumORs$Ga9>K;u1ewbKo|6l6td84c=^|oScV$;|OAB80Sq5(*u6kpFnxxxI7gvg4%}o1|Oq zA;Z(L>xCU2^dr+YGF`RvNz<9I4`spO4Gs>u_oNN|-K~zZHunSfyi%&%dj} zITjbr=AXCK`8{lkz$A(@|BUlCtYai>V4R3U`t#TJdOPXIUkq25FL>d>Q>v!I^S6rS zP7YT_;QTB8=fi>b*PXY+Z~)8^J08Mt9Nzggejmbr0{_IB>2V$&S6XlZ0ROMYKaFSp z5NUCh23X@l0{-!&fuv=6`VlR50r|^+LSr0bb2FySNIJ9SyJE&XxKEJp8S>pK;g^bg zzqm(c3?R*G#eJ82-z(pb;+t{4JLB_+eNIB093dZri(E-(g}Bem5&o7OAzUJEPrk2} z?;R4pvvKN-DNb_c-%z5)YigG(R|V7V`E^C(b|FNSrsGwc@OdGwYmxo;}@p z`dmVOU@PGqx`Zijzm&PwcFpU`Id^o?y>BODpR6N>-|A(^WAYvLc6mu>RzJTN_cMH^ z|Bu%sov#)7{i%FEJ;3nvRfN1yz9-A~BKZ!;_YV1f@G9nd_$sFVTKT?9zK6Fm{43)A*0tn>C&Zn+j_zsl z?U3&(`L31kIoGkQ!Rv_6{nrt~-0R6F=Uh)dy!Cp-_(svx#ULnh1K#s>qe%(Lfo&F@4MEpzW3Zn z_#eVI<2)wc<8ET#_itjoZp0UKyNP+?!L`u>qc8RyD7Nr9{IO*+51lfB@$ zyZBvy7fZbJuED#|%kFwBzHN6?Mx7zw`|c)$>G!a$Uvvo_b~nK@_qe1>?xlW z_Y?O}8vH@rv3r?j)4lV$DA`rMbA)>*d^smCVd`6Ee3cS+inB@LlH$9_#HE~TFsAK+ zuM#lQ;yVamBSx162$|;G1>Y=Z25#)q_YO%p*SSc14@pYb*-u-_4)35=;YHEci0>)! z9S0vvcow(jE1gpq2Oq4mImbGuI)efwSHaTP!S2~nMN&47UL02IpU3 zmSUQ77JQX>w?=*E!*?QT^+~DGYbsd3&Ca(3=4&g6^=9Y$;(I52jn28wbpDzX0D{r_1=hBEDV5$5D5#vlqS)>t6UsiDw0-hu50v`@8sjy!S(2RgC2gz#=yD z;XXTRdo}LoGOknNjyTQYTMyq6=Q^jeg7t&l6j+$M+1XrCk)P&V7TW}B-tO$Fh#~F( z;%2Fvuxx z$i7s|w-n1|T_)X@gDCcZbWe^Xy(T@7<4FF_`HleXv7AZ@0|je;%5+jC)-;-yT29=L z{VAuDnmKzq%V@9UA_E_8H5ODs`&TZ9b=xiGvQ|=T1L?I~Lpsb_N4m(`Kzhd7NGjxu zb-tFHNo84Esr4qT?G#G{#ltgtKP8Q#n5OL^&18K>+RXZ#bcnT|^fT)q&BG(sVN!tt zJ)Oy#p&g~15ugg1sb!Ozg5p6QQcsSZpmOhkA|ZB)mhIdEOW>Kjmi8UZ!$yz^`U(14 zh|fS7np3+%J%1E5ODm-PPRgN}zxIG?$pztKcpg#gF~|fxrkK-J6h7(~*8ZYc4Hw1= zYfnkdST9IjNkz0*q@k?;NNJ!9t%xQ}Tvz6@bQ9N=RiJ%Zpyo%~M5?I;nYacVa-D+K zYiT7+9Ie+uCa5Ike9S6MIsbLxwlzwtLNU{CsA+;CP2AcP#Siyzf}y9GzqN_h`k47! zn})0!kn@bzSQ|j?wWeB{Xp?BFJCkCy_o#&dpxat=EfXF>;})q9JhQ*EocQl_G=9KjOu)= zU_?P7I%%I%Esa1X=zEGKQml{mg7gmSZ>nWJ)Z*6rX#YTexW!7S!xRIxPz%?wO%O9h zvR0n-DX5JY3O^KqOXVxjD{ZJ&nRJ434$~qn*bs{AP>WN{(3()}PiU{Pn1zCvyHG^I z24c1rORCL^BMo51Q+s2bOA3|IW^3(9hYBfmgzY`9@2K~+&J;UGu{l~d(m$lRT2In5 z$~jN#L*;_pSnfkDiDK12ef1BuL8KNOOC}xi#hmlCVWfT(o3D)^^(=s~MH+mNglTyP z)Lvh#jU%PHi^3ROqD`=5m|J`Zssfrs^YSBYDZz5&OMstgYytX+N;$fl>zP4_i0feA)103i2Yh) zigl!%`?Y31xTX$=UkowDA+4Pce$to#3Kw5#9VzE*%K5dHK(%b7T8?Uoq{9?Ds`d22 zlf$I@)leeHw~_Vs2^1>=Es zom%*kVh^-uq?4e1`XAaWYT+8i{?J}i>@ldHc%&H)>`yBIr}~lR19HPdzECf5TlEafM{y*(U8tBJ|5Dw#j)MJlpdq>7fSC@`m*>W$m3H2YYTx?wJSxd zl31#HN&Fnxza&OSmHZ#Po=oZVl4`!bkzLY0ft+2^4nW!=?Helfl=AzAzNJ}KSZFnf zRtOE%x};U3v?iquDUGExp3+W~_JcI9)Zoz8P-+CFqbZ$0X)2}DDgA)b`H)JnJrw(P zFTFlO=_#m9iu0j3ZBxQyIF<16!QMc8l{$H`2q!($er5Onh7#^JAX8 zciNTduD?0IgUa;LJETp7w7QsGW)keU^5=Y74wv{LN>5XYOE7ON{ZbBl`5hR& z6|v6MlsYTFhWFzsI;t|(GpRDxsoq&xxf&dYsMi}RV<}uxu&zb)fcFbUVE(rv`oe4P zG1)a@s@Wy2AEkpSO`&u=rKyz8pmY(WdCPGH)Y&C%9i^Kn-A?IVO0y_EPU#Pno~866 zrB^9^Na>%HKBKfBrLQQ}t6=@Ul=@Q|Olc^kls9y!=B7YssTe51|jj!?t zQ%62UrPNc4W=}d(sGnm zp|lpH*xU0U9U6%}HZF2AyiSE4kYZEh4l8dAuc?V20k+k|Jo_pAwx%zPHBx=LGXU#S~RvP?Mmq|O5d-Ab*`vY&8#kV)bjPo>!miegM7NA zZ7qpuM|#~A(!6ND+J)f#F_flKI*Zczl&+xkV@Rc#P#5c;LTNgsGbx=%>2gXxu8ZsM z=agpG?F6OH(fijZy;m3K<?RvN6 zs)th&OsN`;G4+N(&Q|qsYoqpz-Ql$qqw9@?_tWa(Uhg-0eZO8Rj6Lry8}51YmX811 zSW4}S2fvNmoCfu=tyYxwt)IWux=Zgot&e%iN8=VxZTB*w$2;<-VMjF9)}VeG9GM)9 zo&o9U==UMbjs6gh0RkE>gMCM(hT|RKqESPvr)$Fk&b+c1Rj>2%RB41cn^T&fKW{nq zY!v0}k~WOeiImQubRnf1DBTSyYyoJRa~fg)<5blV?=)Tsd%AZi?HYlvXVU9_^m;I* zbLpKFdcBxlr_$>c^m-A!UPG@xrgR&npHjM?(j$2>HTJ~?||z& z^m+}Yn_>$U$eZ%7Vhh9Z&rwRFD2<`Cnh(A|gI=$pv{?kcbGZ_xo9LaxQTX~uV@$uH zcfN!AyQKX}=^v1)xsYOZ^J@iQZ`k}6q??-;DiAIXG~a`L+x#xPzSaBzysyTd+MYje zj$?Rw9FDgoadq0mjH+F|leX7Swv>f8fi>e-0y{&p)_4BNj zOE`arwB;>vE!alszLvf|Fos*3m0Qro;<+`6(~m$V&}eg-KVrL@MeeX2FioqGLt zJicy5sd{H={4&_n;cG)&px3u4E!8FxYFO9?M`r$>tGamIraSy#$lBI@AX=y`&QTzx z#oA(9<=f&^MYi1uX^*yra9P0nhB(!BnV;&n4r#woo>6dYoVV->w99*~-pPA^OgpS? zGNo8gm$a4ex=Y$;kot>n+l_~9$aRX|YlqYGC%rSIeJ{B4!QTm9|*OdBo!f7r6soIz2^~_J5aNaLK>MyQ!x>YED>+u%+#K8Y+ z>oL!bTaQH$eRJ!v2;Og%fa6N79cr7eUN1`63;9ljGYwky6X&S|%<6X2cEU4Miz zwzKPGcx@)8K{_C@P=UO8U(x+8ytBPK_Q0pzvE47aW7!|O|KXpP2e+=0wyu)4u4-z- z#kd}MBdtSPS`S=C3n^Vo=}t<&qVzbWXDPi->3vF{Q7U?3*#eXXP+F4G@|4!4v^k}T zln$qK2BjZSx`)ziNTqnz3;Q2?PfdT`8eOXQq$2RC5Yli_qxS@Vf05LCyu*8KQu+U1 z>5|?{;luWt-g)!;f9LTRPocKzqC_A3M5gxR^ZVduy0v{~X(~VTa35TYzwCoY4r&SF zeiN>g)7pK%o(_*JSD(|>XY*Qp@tCc5-$wBM;J&yNMo~JR(sW3xi*n+~(u9x_{?m z@V=uz=5N>^r=)fNGY}n+cqLHHUEX$JEad5smI|rAc)x$&qAB zOX=nQ4+{8;^#is+&fSzAhBRCh7`P5f`47ah(F6CvBf#el#1?T%a892W#k62h9kHWt zNDxfbAl#FN48n1Xd88;i2=`Fc2Squohn1(vT=0IBwhGDzyAgv?% zjR*@?E&7Y$Be0hyP&%8^#guLtfqgZ8WR>7>kv{7c&;wZu;mA`a)1m`WC z!y|DC;xfXelftDsq@9F%I;8y!slTW+3in5KN9}-8tw&*xb)i%pQ5TBX9h|q;tc%zY z+$Aj_Wd}@2RLUKwtzF7L@Xn-8I4=WI{6o5=O-{l6$OkDnirS^%c=#lxaY%J>HsuVY z?NWT+!gpM66_KSDti=cU!k@=nT{Q2`L)3<%1z{@GpT}=U(LlJHB2W8@hU5!!mVzG^ z;F$S8s0A({(Vxfssc0q8nJ{EVuo>iwX9-E!q5vs29AlY|fS_oI#j{EUH34-dd7P0! zE#U~PFRO7-JJ3#6$Dl57&*eT=zo4F=!>r*!NuY0(Bu<$_94F;EagH3~2NuqeLtIdj z*b`1sycAAZuEd^jiVL<%!5x}6OJgisP6!$z3W(@3D36>TlmhpwX0YbM{P~IXq-?n| zXaeYK)^3Qw#SQw)HV*_91Z8vVKu{@BNZeCtQq3_AiR%covqn0cHHGK zmhHR_Ig8Mb&)~FR&leFzDYhWk-E^!OAj*@}atIKSwsJ&(=uFCV91Tu|`-Xb4z75U+ z4Pu=Oz65tGjbz;nz6zSa`YZUR2omqHWXN66ELNeAn{ZFXd{!xl1&b9VkF$12D*T@2 zR#u0Q98flEM95?DmN?CNC*(QkoRYx#D<*zbg1LqJG{tROIiR!Uv0pp_mwO3OuLAXw zz@9H5Vp-VpCB$(2;UQR>Q$zj}CGjQvWt($CN{KM>4aG8P?1qaMN{$+D1;W})KOhQY zx5Zl_AZH~km+9yUu~NdHH40*-#9ORs5GyT8u~tE>w5ZJ52eC4uChIuF%7|#zFAys$ zVp(?~R#voO6)sj@mJ^*>rHVy>db4U2OBLnCAXf8YIiOLj?!{`z3St6lWU(kv8fzMq zt0-o%mO;6SVgV_`ai~}$SxKy5oh%j$+CWl$U0IwYWm8{Q78h99pP-`nkkB_&KwYtY1qk0;RI< zlvp8ai%iz@5+8v+WSJ#b$U0&ft5C_0KtC;g_$w0WvZa3>{$q>*rl~dd;8K5-~ zk4V`9*MNrNK@F@k+kxAVM&c1kEzL$kuZc0W)o3INkTM-hL!%*Q5!SlUCZOUZ4{d2< zL`jbQ9-6Ghh;po_p(8-mSbA8p)>zbK`G<`F#jrxd#%fJO9II;BL{I`rO<7Yhj(%ru zx}!l@plB+lkW^1J6(5q8iY;MtwWeZ|S1eW>vUL^iVEo?Ja;=&8!`2$Dx$uK;3cxxI zYyT##g{VrJ0otL(i3TK(b9dM!xF+9BNgfJYqqP+6Z0*rniRqm4XjrO<7n!WHVF$H% zF^_dU>?_b(*4?mUS{sq2B>xIKrL_~mb#Pid@_Cpq+!Yzk`WI?xFJ`gy@H3#pELZp` zt%G>P3J5=@brdP|9SV;u7M`Oeh@Grb;a5dxQ6h?3a8?da6c+(+*#eClHh*PSoJ zU3x!JR7n;qRaoyY%CMqJ1?dAs4OVxE4HPk~$)#NSAkmJss#I}3S@dFkS?VhMBFP}u zl~UpQP=P-#lee`QiZ9{M<2S5yZHTEqk2wLpwvw;3((nxiF@wrYhmo~h8!EPta-CRi zm^iE?vD`4>h{k$yC6*f|{7KiHJ4zqahKUf8s%4m{Nb(3Ak;6q@TYIz-qPZ$ZeKtyT zRxt;Trvv7P)7Ed@Qj?c+LHo#u;IBx9JPTa@Nz(U7+ZN5OjD@|lOtdGd z{q1rwQHlCxg_ulI%VC9BX)8&r5Lrr&w6dx2+ova3i^}GJeq?PfdsJT~F0wu=dmMCw zPvXo}OR_V#N;SCVRdjhJsM34Wh(t&-zO*+8*YY+;FVA)wtXSGhp3 zP8?u`L2R8k%Blsi_2MKe7Gmqgw@NTxF2X&!7deJUqaTawEIbWOV)N*u;iPiz-y zO7i1!f9TuA3DN@5vix*?hj^kypQLt((k-!Erejrk!`LAzv-Xtt1=Uib(X&%TzoFK) zf{dM_yR9%|mzbbLOM16>kA+Kmx0prpIFFaFXzUU5SwEGp3c5zh7WheVujtc?=7^5# z_KFN!rNn3A1Pea{?Gvv^9tVE9-Y1OKSkB|XPuKgz0FvsL&&6ORd8NFs_*_h6Jtv)E z;r{4zagC){KvjsRX_19UBUr^qqevN!iWO=ZpNk2sdKKOVrIFOw{X%4u)cU?(oFl2x zx?jAq)xp>=;@V()80&5v5}imMXHtbgaai+MP($!qYfV`|+ITPams7tL7hNr|kUq+zTfm2Mf=MJj6?X#p!8TE8wfk>Ds6TE8I< zlQP9BsO5$TOThLr#TJT9RHCiM4UuLm1ai){^}zT|EF$6Ov8To@@sS-1q38VGGa13l_HUQq=02-@;3=k%cY16i-;#!b>qQQRT!IUW#QT)xt}$_6=<%spG+y z;yw$v1uuo(4Qo-`g1<#^l825C{}B_F=;-j3$mSRx9ljFo?$o-(qr-niA`6cW{}mf; z#p(ZvMn^kqD0h?8=n0eulpLk12EwoAX0fVN z4FR2GMM12n{E^ihVnyXItOSS!$s4Rb5DSv`Shz0^mVdEuUmPr7kyKxY$f&+Joobwg zNOwOHEfx3`Ncc+=i^GOimDXFb2*uP?hst6qCw-O)l@-0ph1unnRrR&PWQ13_aM?)7 zainS?D_pi`g&2->VNg3In zg-0c2wNpoo;+ST!O;Km$ms_3CmrDO=#D^6K(m7H-RH$fzM| zI`P^>4cUg2F6u|ZS!p?#)ryqC>Ka*GuPLzpw0f$*K!?^)xa&U*3|>wT#6ZTW!p5!Cs%e8$>c{VS`!gcDWp2iKOW9|MhJ z{Zu^_zF9kk^;h*A&V@9di zKFHZzW~HDq#LuMU(JFSW#yP9Gygx?iS&d6poQxc+WY)Z9wUp~v#cKX;wU!CvFs4RU zynOYJ%2~DMLn~g!jz?vPw`=BzwlZUaQj41BtaftoM5XpMpI9B_SyqplA@JSZxJfED zsHU&zBqJv)jfGezxpj)t{F*PV1bIIdrHmiS`D%DAa?=+uc)vuESI?al& zQ_rWDJj?1+rxEB1YYf!cTi#;52X*$A4_R{{)<-^Lt$_^ z)~vd9lR*ir)({&gd$M{$Y@kdgscqdL`9g{I2!rJ-B{>3G7%Y2E6Y#e{REnBqB+GG1 zbgpEGTuxG>XNcUPL}Oxz{EUTTVu(DY?xTHtR!z^6Vqh(Yk)~Sx}$H?wV)VpJ3Uy^EXj6B0R zaa%V=z9gyjcC2*G#9FYut75F|OG+2-*Yg$QWV5;1uM17Vj_mI?C zqf~iJm4oRF5%0;LlpJ{1N1FVFg?D|V$=|$krpx=JbUI3yCZCX&il_C`eWppr9GoLm zCMeO?JfG=uqOB!98S;g#k9=mx;JJC_w)o7HeMt+%>w0^AX3G^yw61(0x0CR*{Z)9{ z2bRL)f~WNk`^=GtDV8hizFk&?eaGh`dCJx^pEdF>>GPrLL3jNekelRzxjpRjv7ALp z7jM-+?6XOpo{u?EPRAB`n-u}EZSwF!jHxwshy0GDrgMip_lB;Ja^?E^MI1Zq<-WCk zamOxs&CVGDPiy(ZmdEE)`Ja;G^ZLnhx3m^vdzp?S^*uhjWg*t_`hjAP3}T(F9|8&^ zqQlogiciC}wTYn-3-$;Z)nKE;Tc0>C z+Oeq(_Bnp>($|j5w&pc>V*P4sZG#hztE4bE0^Hl+2QU2$x+dj1A;LtuV|>FO9M|Pr ztQDXevKC0qk;msZxsQ}9amsGWY+Ii=Zpp~?m@`-6l;z6Bw!VfZj11qPVmM`Y z***D6$%#{TPX>NWIh{CV_hlq0TYlZp?R+2;NNSCHCpm zv0gRu`1onTtb#GAqM#PWDif0fiXi1mY@v|dUP?r))9s}PMiDQ;*&kcoV-9LX^F;TX z+A@d4v~zl^AU&N+&C!UM38I)?Zc0P5XjX z2~=G>$%+Bh)Go6+fof~dS$#ltHDfPM%Th6-@fK%2Es>H>Z+HWK^ zdZM)#wywgHPh9&jC&sdz4YVq@jyoG_t!-`68fn8xcrVot&KPYnN!?4;Sevc{_fj2q zHrD3a%5gT)j&e@CJ0(`jX5rl_vD#_Y^{}hXSnUeyZdk6fnFg05;m-s2QayCG&=OgA zcS@W#g@yN0#c3y4diVs0y<)k-A39rVkzc4<0>X2ht+d^&V&P3hymp_3_o}qfdhMs2 zbT3s~tuG7jRcWjBSAu(~o;urV!#IZbs!8IQR583)rK8q`r0$;TsP(n=x7JD9&BD8$9l|=* z-BaB(ez>YE@Wx_f#*fJ`3-j>aDe6;oVbxwL}))J=IU^$HKd(lI-<% zSm|hCi|&`o7hW?>(neA_ywfSmnWW7p;r&w4qQACLiSC!`uRUU6x&GQqlDc22zb3!L z`BSy@*ZfI%ztnN(04>y3j&q<^Rf+D98m!f4;TRmO#j$V<4%Rxea10LC`m=BhCTpXV z;0~#W&Y{|57LLJT+DsOXx?$Q97LK~%+Q%#$btAM-SvcxOXcbpSP-DvF>j^U^qt^LlzQ8!xqi*w?r8>79prTLE43LM5hQ)~Y?E!b8QF;1(m zMECN)qcvsWz5MTJ@g%i>7_W`6%lV24TAGr;o|vG`=W^G>iuq2^u5s+Iuu{GgwfnXz z_)gN|zM^S?{%j(qYO9qT?k3fIQ?<(+E7_zrDDg<%RC|2h(}ri|sjY9C_K%XIL6bm{ zq3K5{=4eeSz)B<)VGSk~V~r=3W=(I>#WzE%Oj6s=3@w_Zj)gO{*f(Nn|HJkch#&R-=bdK*FZH%qOzH_yOte#MAo_5sMG~fB!BU@{H7iwj)Rh>PXZt-2LC9(#=R4>)0 zvqm-bwU%lh+uG~9OgqM!2C?PZZ?^XOuF&*vRGmv;ZdYmrSW{vCR%zw!*g@abTBIF2 z=(|SiZpZ%TyH4wG$NuNLL7U53+u%FjjoJz&$A+e7LF-rtoBjgYN?IV!G`;S-N$c#v zX;~nyHoXPv$$ALdqV*@?r}F2%+q5wxj}wnBwrf*JnU2n}ReZK<$6147^#a?qn@UhF zy}%Bw*>P+E*PMj~_GqJRtuOGomTv2l0td7?Bz1-VpmyN|mRsr&&Gr@eQu~utko1zI z?#BL7bDX3W9HGss_xxE+#c|gVu5E1E}+`mT-z%7i*hUH4bYRlpOmY_La8rTQz0JNYSU2@LKX$ zTAA;Z&QPoi>ryjMfv>dpS$Hk-D{UbQuSI^PttNRI-);8PIHIlkUbX(B+35mV+E!aX zf%dap%>%_zEsGUOiu*y8tI-_px6wM=$^nfdWr!NhpNs!#i_c)rbkPKI9@8R!RO(4` z{G@6b-uzO5V_H+z+7@JMm=BM{7ey4;z2)or#*X!CQP_3dOChe4UJ7-6 z>!ot8@4Zyj^^>g?jf?B&yyWZ3u{9N1xZtG_*DqcQbzSySIoDM$RdwMLXVp9`h8A+Y zv~)+}h@j+a7Q_q-J9df=sUu18*~>Uv@;1$ybZmwa6>Y%PKo{`OLc>y?*6UH^Hh zoC}|YtEPHUi>fZu)=ZcOhnIX^PFriCg#um*art>E)K$n!r-J8gxyI_ZyWg}OTHQ5RI5i=dYh z^$c58T|MeYLG}t|9tuTUA{n zbpKzdoD;`Vie83=V<|ohsqNAjeJx2H z*NxGS*a{J2^zUpna*frm*lO;2M}IBT&^E^SH#d;ps*)>6*Pg3no z$Xg#w|CaqBww_|R$AfDO`Zm&1N41tCT@&@)tfno;fev`(d{@sRd1Tj?lU?uX$4RP% zN%~n5&e1H_B>mB4HD!2|H(7td!lS&&I@}mYQ;kP?lXVAcYReB@lXW)>kMbt#!6enf zWWAz_(Ns^?YuJKs8R+p`?td*Wi79#l>xY(CL48T;Sa>S+MBe#{R2H6}Sm#Q!wK-;+ zE8W)Km@ixz`enPluU#{A$FDdK9(k+fI#;H?k(A+h)Y9XcsqZ9ZOWA52D4P}B%I%z` zyRKrnbWyoglxsG%fP1G8T3vR1phr*)?zCuC&~L83mE@5a`%r&y4a=$VvOqsWQvI?( zfBHtuaUFAJ3#?^4a|wL5V1t}C#m+9+EbR^x|E-KUN}sr->lYM z#EQI_--6aDpvqhh@3vc+7c;TkO1%oja-CRim0p{LmbgtIhk~{)y zS*>^QihZQ_RdQTxohm-klUes#=YU4D{%svC*68oD3dT19O(Ur~*Xmg+Mq_E6{sZU4 zI@jsvSy<;f{Ti!%e6(1v-)8lKI@jxuSwkVVL4V1b0I>}^+&T(>s=bf(6q1_1jrw~^ zG!Gl~nJjE?qduRtIX+Nq(wDOi#D{=3l2o0W^(QJu^RPwNZ>siiIc(8GNtx8b7QH+R zTiBvUvZ}WU6kGKuR?{}{y%XWNwZ22Y!8w;hxgGjl z);cJ+Lx18`Zl}Kb7EY(?iBI&6Z)iVBjfqe6>m(11p4xt&=yzB<+tdeXxiq)VuiG>R zRbc%Dt?$w!Sy!O-T{`B2^})Q|CeH6uy`GB6M{U~q?a|{{FCey8kNq8UE*4hXM8AFd zJXWK&1N^?w*V!87cTl%(tDNoHPVzgf*CJ&)@EH1QJ(@MBZHC|1dK^iusag6$lA6CP zeLczJoYFQ`Wa-;j3)<#@uzoewv&B(;AH}la*E!<+j_I##%@*J2zIQOE>d)hP04bNg z6M9_FCSkeR;WheFUH)4?_RqmwT>K>L;`d05nQtf@G5A=$Cr%&{X z{h+6L#eUG|dBuLzmwLs1)VF!Xe%AMR#eUYay<+F|(h}n+mws(K4St;n;!TO=Rr-`Ej^5+=KYqwoTQe@ zEj{E9%y~>N(QcdH?|KcADtB8CC#iYAt;edI8s@yM`#;KW;f^jyD(4+Ngrr)yqnG!} zc~7s#G3>#6dbC&Uz8>pU?!Mm9EA~+D=@omZ@9~N~($|qx>yLO1@R%=PIoR^6(JoN@ znHTeG@`l>HAzZ8e)DKdfY82Sz=$`z1VGDoiC)Biv7j34AC;CH@$BFGd)t|Dky{G!W ztc-RcAnP&qpvQ@=Khq1cK7`maJ&1+V@>~yP;Try2uRv0B`$FIRG=Dj~&_A;kB3|eZ zlpMb81I0`IDJ!gf2ncSPhreuDr+r+(zjg5(rS4<-M^9kk{QaXZCuNFO?b{XnSAS)z zOTqv2m={=1jTd1g+X{gnTw6f$IB?#jv4(~7E{)GvIPaQ~#lm^ljB_Mar*7O-F?u?L zZsf9X%5($UhN*@nom9{?w3jF>mn1ABfaH-F^RaU-X+NYOJi3VfJm$vsqY65WMwByG zV$9b_U}3C)G0m>i7k-W8{Wr8w$$@(=m$8zCdoGvpF-f)VXYBDRSI{`<6)R|Xykdon z@4aG$j7wfIw{cg+s3+XUeHQkF+bH`t&XO9fg^k*_;68Dq3n|lqcg+jI*j1+P{Ywwf?~= z!=(aG3^A4{IqG!`6mJCB%vwCrD~K zOBhpLVSCvEr=^53{B>UIz9Q5ZXDbIZRmqXmDNuwN8LW|=LO|TR4)^f&8Qm({UIpZ)q(F%{*KkRg@P(>rwP+HaL`$7@Mde-4i7YkK0 zPLWhCH4OaS1?V&JXQ#V`Y8YkAJpECqrV&72oyZg-;aQ>DMg?2{7OG>+A;Db=3I7(V zYg|(?NAU#H9cBE^Iq}?ml<}GsnNR>?wc#mHdGq&n-u%(EU0Y_Y1h+F^gPQt^`bK*y zhtF;ZbJsTpk<>gy8}cXhWkcC!M)+qqjAk-nj>#x)jQZ!~`6oUOu#yW1M~I7ZhSjTbDs-e@EiP%VrJALDLkoVE3?yS)(u zPp!i_8WRrJ8;uhzy54BykobC|am^N7Z#3}9RybPedZW>w#Mc{*ca_xjMq?TapVrXL zSim{)X$?J$wJf^cXnew=>y5^jEV|xkoMO@SM&kmDt~VOjS#-V89+AUJ7k4D(NnLNW zMb{gRhg1%)6jpR68E$w2Bi@~s=U6xf2OGb!a116Je<;EAv99i+#y>2&-e~v~ zqNOQt)D1HNSvcy38>Lw|>P8sVSUBoN8TDCoz0qi)q^>s_typxu(P+atany}Ax^s-K zHyVRkbiL6S%QjWOP{^{#uY@c{|fez$X+u~o@&J#4xA9peS7e!^P!cq7VL}nScS#Ndz-aX5B z#H!HwEa)W*pB^;Zknjvg*rGV`=|Qs%mlA!4@qHtOWB7!N4~%S%;ddB6FoFZ99DRpz zj*-m5?=a3W4%>>;=Nj%n)dJp&GtUTCl6XJSJR{jwL9x)-$HM!G78wEXj6+<*@v7Hi zqc{nUX*(Abi;WC;CLwMIV>|o8@4N-T6Z=p@VlKIt7*$BwvRmhN&gDjHTLr~xqc2G< z&5w-HBwQ*X;v-sOdFKG(*QVeP?@C%5BmLLe+8pEb-(U;xQQB-wqFQj&9d~arW-B=s z#~gKUrJOKjw7<<4j`DmR>>T93&CYqUa|thxz0;1tHDNCeiGg1g&Wrio?3^k-vGrHy94~2I>iX}pW5v5{(v-qr zZtHZ3_J?27fq{iRXMR)*h~#v+p1W*s(Gv2bY~Ha4q#JI!4 zC4I!6KU|vm!ln7O9mA#hweduilejdqj0E};rAOk@%(8Rh(#$eGP%$Si&7;O57B0=B z#%dNW&Hou2S-3R+XM94+b>h-IW_Vb*G_#GXEL@u37%y13G(CoYG3>!yCoaw7MkN+5 z%@amb7B0<`_H^RXJZZ#JEM1IF^c5$KA;qy4n4`o3?vuu1Qns9zIK%&2Ba5{HblSMj z+6DT~2rPl+GQ~Hb?~O1LTp3CH!2bs$k(5i%W&F_yE{QqSw%{jwTAtR+f!|bv0Q})y z|7*0Ly|l>xtWlB5WjgL9uJk`=G+}AoR{G}{J(OrWf8I#8mEm{Z7;kI6{{i+E z#$F{y@ouT&l5vPtuUif%o7JV;QTJt|OeoEtqffWJ{+Epi*642QL9rwc+;dXV|BA7W zg`?+JBO#3XQ{d?N)fmUZ(R0;^3Rf{4Jy(s(EF3*o4WpEb;WD~r^d&72)4Lt;zh=y5 zE$Wu#f5W&*x-K_%%h7HcdTA_&TBF@ET%-)~D=62<;MntSi~N5#=5wrC_eK7a=Wke|I=8(dJX!^*h@Lp2zg>0BV{`9 zF48B)x2*0xu7b|8a3A;7xXi*W13Vvsh4-62Gaj%8^ni0g#tV|V`}Dcdu>ww+I(~U> z^dqUg({m%8I-8I3-42XVH~t`9(TVqPLi;eCgN}7ipuH028Icu74HO8L6`STUE%`zl)cDc5BmZa*eZB}fOpR=wROj12q z*Q`ZSIqRCYymHnv&wAyoXFl@ES*8 z)=c)w8Eani%Gun!O;Rm1H)}P|ud})NoTTcEGcS`=opGk4MSjjW^Bt1P*~%P1QaM|h zX$B0bHRRx0Pd-Y1LnHaC(Mh-1BfEYin(#JU3NYc6h$In~_uGdHquZj;QPNUA^k z(|Uyaeyh)rg83@a=X{X?<}Y5g3^MO~)iT&TAD`c6$>tG~nxka%DoM4TY(8RP>qE?v zZSu-nvZHsNdTy!MBP(PklA9-lF0X(dPXK7nGaS((+MPY9@%ofE$EYDO!GQGI?bGS0kg z>sFC>%ysRsg#}_pp9e+8o0mzs^m%ilS*1P3a_N~l@0xK+^hCvX%>yiaX3iutp#$ZF zXDGJSCz-Qt#p#pH=cpM*`_)Ef#)LaGDv-!fy&r zGn*;VQOR_(H^=ZeIl~-8!uF~f8RjG<$8mTL-3)UY3!g(b!~B5cp(m7Nn#)-^eS88k z%}uO3u>3O3y{xCO{4&ifC4o-_n`wSW$`%oo;LL(~g=6>(uvz9^R;@~Y0kg~(wh9N# zHXRArFZg7y5HZIrO2U2#3z!S%n5nPnNp~Nb(JXw@-G^o;R&d``G2iS-!dm z6%JTn-nJDY7MqcsReLzqOUy!`V#5&XHPB|SzDxsoDYOA=;j3q5~Eb1E{u+D5v%7ruJLSJXLQF7w> z$PH$D7Ct?8gV~9NXD2t9UASDU@Nj*D*^8vsjt%Azl4@^*Ihus+^$OTvPULdf-Uf4$ z61BI{oXW!XHkxTHY;U7EopfE|`Q44?`zi+K;QI$`G#9Y2UpAY|S$cSozS&&GY85^t zV2indRV=)?zQx?8L}%8wnmbu|j&rN|DQjQfy8c_uFIZoZzG7Vu8&z#b)3VJx zPEtLw!~B_~*5V!J16!#9JIvxe)G|5?OKg`}hIP5`RZtbyO^AJJ)@I#@*r#Sg))N@l zyUpe-tsgv1(riak+oe6`D3XV^OMA>T7H)0!nio_#Q7k+}>@#C}=8vq;%{0<t=|H2&FFr4$0uW0d=gfWL54TnD=^CvaR0& z8d$q+JqT!Qy&$ResJZ1Fg5}hD)Z8kr1bf&Q0nM!hmT%I30WGZMBy}ttXO$m{<<$BR zXGN0K`VeO&uyB27X{C`eX?hgr2>c$7cFP2jbKh>oM;xCqCPLIS-SzWBbR0~e^>cFnnEE4WX zE{Sf|5+yo!(ak!{T9^dS%&{sAr(P0ElePzTv$m3^i&YToZk<|?n`(saUh=}ur@>oN(>vGjiw*w4C0Qp>&n8$FmO?7`Q81MNQB9OF}T zur2JtVb&|CB@Dh8tSu@gV$HH&cjI_G4 z@ZN)wRv#A5`$%gr>v8|A0wb+aB-Mi>t%WKEJu$rKNGqG9=4gx+pMtF~b-eCBq39T^ z6Dx4QWKa)Q(`v2oUDR$qvXv))w_?+!>S`i`}VV>?<*DEh9o zi(`u-J^)>^wXo=9tLSJoEoUHSsuiXr7B~I?)W+7rqG{GF&UpiJPPZ0vECuSEZhdWQ zVbK}ZE7AfnbAYck%ZeO>Ei4d=K(nm@BwUL(7Jc7ZOG+0Z178PzV11@yj);NVi_W#a zB&pFe*E(;PI|#8{&e?QeR?&IZLlPcqEOXAYjInCjwjFp$%(q-DTw?RB0MgQ!ZUavj zop04t5`zZ*1d8R@sDT%YF0islYH2Q{k(CBdp?q)PuSFMHMaN+a>eyz5Rg#3qHus9I zu*#C~>hVEsg%zPhSC8Q-bu7Gkyuzx^IhVJ=oKdVBF{nnYj|M)5I-8T!=viTPB;~c< zorJABf>v1lxSVP|S&3U8#!{`1Am!EhE-A0hbdpEl-TN!746mFkt@$Li6<%p=w-q8* zT3Jf;^rz*uiBwiO~iw$_p|9R~)cijCG5 zmS(0PH$a$HCYvV@iChPBkC4)9v_epAQH(LLa)ZA{g9OH3XmWoY- zYD3PRtWO8k587-MpP*ukdNmH(YMo{s8Wb0_-3p$lV&4vGAGFij&AK?KYtSw${#_M& zG^kI|9;@6W)B<4)9u)MM6{$q~hcB$gB<#-+@rBh>NxU_khx{@Pou*bFEnnOw# zbq03^on ze&PRF#Yr$na5o`n8r2DRL{>G9SqZiRMYc7Cg?AHXTi0xLDfo?5W_td#9JiuuJuhpQC#DZ{ZFmc#c}vdT%{ zO#I$5W?-Gy<*~s-0?t_etVe^3>u0PItfI+5`j1v+l6s!%PgY%yHB9aw@RQY4$=NSC zRh+e&vp!57Rq(7en6)2rp0mcXt|r&@KX0Y6oI_A^S=EQ6iu2Y=CHfVR^VT+w^@Z3) z>kCpY{kqLX>lnut4mqe@w9arj{FHUkx%tU!`Fvbt)OCaFHVW<|2F&#qYwS=eXSt$31$j&yEV-8hDQcEd_jqCUH6 zO=n@B-L$r`u+MH;XIR*0zgt&W*k`|6cUjnHzgrKKsLy`4UU3Zj?2hG}NlV&^y>!Pa zszjef?^vZtnRHj@9jh`6@9Ml`)neh6{jL?w>fWQce%Fd4slCiSYmSQ1+IY`eY^$nq z&-zFS?j)&d+_yG!IXpk{z}jl(M19FQ9}Y#GWQk#@99Ch{O;#DwV19LINa&8bU~@A{IgtV5E~EAZi$r zfs9NtAu|zTp(9l#Vq41Q9r3-OUDv?xE8maW^#{1V_9bsnl8=U8 z>-3E;-EsY`(+|Erj_dtSKl{orQIfBQzvyIGv$X5$@YirvYgby$FP*&B9gfSFW?4rZ z*Kujd)`^!YE!j0|JgL@&+C|^&Z)JUY6=jKWbX&TrMm%3+tP zb;nyLv#Uuo)ecQN-nve^Zm1oZ*3p`=k-|0MF6!xNY1Vt%wY;n>t+O?x>!rtrTT(y)+X(uJ~_*}O}l8#m1RB3F16;$vi2$$w~lP< zkdovTQMUE9D_pkaxtvogXhoE5ov2;3BFeT_vP-Rqx?A@t7q5uATaRiNt%$l?PqRzq zQjYZkyVQy($9i2!!j{=-Io1&!j^>y>tsk|ERzy9mA)Ck+%9rZ2o>nQl)SR}r)#&&& zr1iGeudOnP2bC-7lF0pO1=f?=b$#SfxSrE4dZWM4dPTeLjHJW0 zPrDw8bQA-vgW9zlegmzKwTr%lI>VG1l*$aP{eaYlq`H zKmBxTmv)_1JUe}y^|IrtPM=`?&2g1bqjj-0J1H?oF9y)ezX);W%ALCQ>Pu69LE*^+*yRqwdYO*zv#-*GKSnPn~4t}BagO+U-JOuH^R<<|7G zt?L}Wb5qW-wmE+1rc_vWIDQYO%(m`#{2or3V?E*c{VAo&de-s#Q_5WH744$0kW^c5 zY1gYK+?8H!$=^{fHHpXT?n@6@9klDYy2sMbwMw+>BkS4p`PO*l;nhyWU*ic|8@20T-5cpO)(zT~k)7g;Shs7}H(60{o%JBQl$JW{N#&RHe%%VQ&Uzz3 z@)Pa)XWjnvI!j)w%J%!ZgK(v3*X45#rYx}Xwd<-mAEhs_O0~;a@OgT@Ri<4T*->xI znxS3CE%-V;W^H1ZvZcYgR{5dj{E*&Y-K1SN)yd8c)^>KO7T19GE=9Kmgn5hu8ArM} zitk1xuOt;+&hoPuTlxmTH*_pYGkxXTj?t~TC9UKeU7FXiw(FR4^KaJEQnTVH4S!%g zJ6N;gJj$G>ne*BL1J=IBoMY*6^ZV3O>Im&rE8ha%qfhc8OJi7&Nz{A zs)L4@!Sp!}8oC^-nBzv0F+_8YT?##WlFbTLTp`v#Xo&etH!@P}cD!yGWxrdGqAy~3 zH=j6CEMrvZZJDC~R4gs6TFLQV!sw<|xnF(^-y4`uXoy>wR+`;q`Vjm6nSCFsHz2u( z>9<|-D%7#Gsk)(jm83$|3XbLLw!|Gu(GORW%?DwFDGsqEN{?!-N=BvYEA~}1wOPAv zC>a$>wR(3f$~G11TaHCWDQujRsK*_)rRF4rMQdXXZn_pls_tUrii&T zyZIL}e>J0v7X9WBm10yThuULDh3r zuN22E^V?}vhm}35HM#3K(NcJ0gvT>>0~(?a(+U-5Fmq009LF+Kn4Zo!hdJ|^R_(>D zxt@KOv+r-W{Qpi;<<$m`>zdyjqY9-gSMjPG`yFdg<$fd63RNq<)#Xe5Ph!ubG^lb^ z{lC(z=sP*A8WH}&G@&8l978A>#aA@71u6EjOkjC; zirlGgnHH5&6{;oe)}!cSX>jvf#;8Wa>1>;uR_%Hw^XD)UZHNU9$4w{JD|aa@b;3&V zKh>l1u%))E92=w{+O{N4n;e%%YfCL(bFT|=8;s*z}0xvlV$RNQVe2Rm0+AU zdEEC1l9b{kMrA)~FhmhJrWnWkI7f=<%$ce9Ktudz=@YpZ`tN-Hf3s3h^~$}1IGf8$ z@l`!k{Vk!r0*ce_a+hKrhoxF4MT|>)G0+q=K6=Dj=Bt{c+Ff(n5GpR!`V{?JWelPE zRTWmz&BLlTE`{R9(QeVivFUgZkk~V*oQb!N#8z_!r%}nM)<-%`aV_{BZi!xQi9X#D z-7>eb%eavG7X6b8 z)%;EMX-NyI7i!1YiP1e$xaSh8rV$!Ee=rl~4_O>GE@St}ZmWhs#t^E1Q#7qorTBHe zlA*pRQBsX%Zfjf8$Ko7|@7AegT1vK*p%fW<7iARZgPWu1G8bQsAWF0H{dJDp5+$!} zXc>!}|DUB>YHP`9Y1^;M%-|UaUV25zy2Glut3o&b*R{DN-Lwkj&O=3?!|}Rlcc{7S zt6Gqnd${FQD7U{d`?wNVZbErSV21D#+OX9StPplN@A1>cdnI`>)AYYk)abGFatbpo( zq79*Fw{33vw@VJ=okJCus?VzbRHrA@)(oNOWA({uS3$LLMHAZf)7_eA#8)%7#9r%r zPM4BY=YZ$%{DICKZAn!+p2j%me=6Tnb32!|j!dhxtMQcPFoqyYq;S*j)Wy>)MVz+N zPG|at=mO2A$acl$&Xbm*6eqrJk|IvqW0~Tp+8C!3ebsJ^+R0He?)@3Xp?w>Z_ia3S z|Hmy!VLf{1=jeQ|-v3d)L%F=-bfP`~wf5+FXqRuiyi}h5H*XVjM(r!AJp519Th$|} z(fn8~u^+cw)xWt%#)04)VhH=j>7&gLPh`n?ys}fRK=lAb8-h*=r6^&Ub6A_ZFAXt2 z%6xb1?(?-ceYDu!y^WH5k!QseyL}$ymQnPvBo$w!B2L>aJ6+3`F@i@>DPXVRgb)g)v?~{=JmM3T} zIrf>_i_n8np0&AYnzI?=UFNGXU5&yYvb-Lzd1U+=98+tc+{Uey^T{3ysKyRcv}KOk zLm)In26J*4`>>?CH!_qtYW_p#IELuW_svvTRho*XF;t3{I~Ap@!F_gcthR7;88!CV zqh8Cf?$PtN#}(J}Khf{5$tt}H&*U_!nMR0nuYoyk`DM&e^KC^d+`#fQQ!>S7&>men z#4(s-m)EVwkbIE&&j8iBRf=n3e1{F3W78@J)IANlsfaTgmT!65(vtHg$LJpMRVk?5 zQCiCweCOwA^A;7a>i1MzQ@KR6-Cupk`dju_YM%Bbd`|#qV@61l-|bswk1u;GQmK$Qk&}64i1J{3@Zl5_&43r4qX5Lib#; zQC7o0EH0E0XsN?i||_v+m?uL`d8@d> zxJ_JVY{&Bt_}z}*Jz}S^199#^oI4Qb4#fE&;(SoNjz1^-g7Fys9?BEqi18$>eo`!w zPm5OO)5wQsMF;a)k!HRQz5DQc8^3p;`ycqdhu{17eIPcNAK>{ReuohLFyc6jIKC9q z@N0)3zH*3g--(#~0eSHYeukWhUl(EG=aqFbNuDi|Wm}OVOYxhAUpxFdid48$;ZB7+ z74G&jCOgW$A`P;g@yy0|x`ml84rW=vkF#0<|CMz-kiH;;zs-v~N9r}qw-;voa=-V>e zML+mv3;NBFvoAwmx;ED z*B0Y1i-^B1J~N|{`J^ocwZyYzT?WN?W78LN=GxFqNF>1+8;0*1W0?s#MZ_7v*^hVicU0w@w7K1;3$$qg5aW!>n zGFL6x(|(^A0}X!jiY0q9Hk*H4@?OSP^I+D;8QaZ)ohh#5rB}nMHcKh?68u4lef&+U z!=mTXw9JRiN4nt6YxD12HpzR;Z@OF$Y}1vnd)IfwTIkuIy372$s0SqJ%}>8MZs`%9 z-|UcGkm)zemk!O`ZO&afB6BN$;cB-zI5)+&hf6_nIZET9PNOpkCoq<0?&G}5=G^{H zT(vZud5}5Dg1+2I7Ou%W%pAX2Q#7p0cc6>9Bzv-!&G!1up3C0vLUA46VYgYh?AtE8 z&0=6XdB(Dzx=88m6Sgm0u5dG;^s z-qr7Ue_2N{#q-Ouy%|$Ht(M=IHpSC@`5Wm0gnGjl@RamQhi|yoh^~IKYWdi%Q#`fH zCw5)nxpH}|Yoq6`<>v$Elr8PL*7NA{{eo;*?%68n%V1kMpD9J_yKVNox_oa2`EKjx z=Xye^e#7S%PxZaS;}>uBeFXR-(+B$Q0!X&xD4`Jk(LxOlj9{!XZkY_(O-Esd%jw}#nl zidtvw^E9pKkhR-%^)Wd&sCc@ILe z1{$QXaOFGDRWDAfd-|#w&~^^cZ~i!vTGNtM`+-%$Nd!@JKk z4vu&pIo4x!eRs;|=Y37Ed1Lp09J6{T=A%LFPLoR zv8+jkS3e7xGY7l^oLhVVNVRA)EIi-Z>ZN{QtCxC)?cjXfJ-}^bvwUpz%$!5!u#>`> z4?{D0Ncr;W#o}SeJl5l3@B6Deg8qCp_}*_;Kh=X|b^|Ml_5go@?{0D2no#TAqU)ND zVzXp4`>pZ!+~u7Bj^AvRz2CQ4p1o#f&TcRHZkKJA&gi+@OQThhXW5#s(;t>)(6-OJ zbwsr1Oz-V$F6_AvdA=O@(wenB4|)H(<~Z*mFQw%$tV$8zX-rwWS4iL15jXWb?Cr7k zPT-KWJ9;MjXmm^Voxb+bp1UNC=DQ@#2X;vs(+_*6t^G&Od*tl3pZ45?v|v6U!)rT= zJ(AM6M=oAVc=cM@E8R!=yhlE{HmTPh`4`4Ff!Uh>&Du8Lo9p(9zRcMTZ71~FCr@6N z)oZsLx2{*O;Xayg?3RQ@zD=tNdlmUIvI~3dk{7J&1bb+9u?v57rjr>EtJl5U>pOAn zx{rD_dD3c*^eU7zrtcP8)`eOxgv>9PK<-hR(u-~#mLeflgzXx zQN~!hzQ46hP6G~?f%VV(hRgZuU+pto#@6raQ{-8?{s555E}6eZ9WpLo|4E;ap-S_% z_22ZF>ASDrPkjPD;tZGXtWR%6xV>+-L0{3yHs~7*hvnDneYp#Ko(m(VE6~y+=@t_XvuSdKy~1DzS!ALi~t`M!fbmgb7PB+VgdUPNCBqAzo9_I1AGjDDMaeJ{aZ z!!l01BppaKHr*J@^qH5u;oI&zIHI!O!@jF8sp*$)+9ylBNeJ38cWIyItWchbu z{(1{_XDo{j z2*|XW^9K}KYc{SJFxIf)MK-_jQ4`@+b281ruq2ke)r;DKIlyO4D=_!_rD-^N z{%6&7Ee(pPB3SQ#GI>I=9KGF0I5^2!i50ZxZyFv5?5x-~6@(86>dgf z_hq5qQ@iQ=!X}hpI(%~%|E<$ZgTBN;bvtw5W-F~GXW+xWn>G~y|FG#K;Juqp8@S!t zy{T*zsE5r_zlG(uvHWc;e+SFo&GI`8%8iGNgr5NUCgA^EiyT0OiJBSlTx>asWpZ%Wq@( z+e}K`9VVsjZj(~C!=%(bWK!xLGbwdDO-kL<_>M2qYjUkHDRr-yl)BeVO5Ix~rS5H$ zQg^_l)V*gu1sv}o`zL$I{&El5Kf^=z&-V1OkUI9QX5TRT*0FEQ!>RL7>UOfs(=78G z%Y5OXxW;-fNNO$4^6mxJ0h91GW{T?yFU56@m*Tq4OL1-SlD2JL(srAd@~V}OQjz7O zI(f2hTnZ$86l#l)LT&Sr{B1tY8J4`;N3CFok6OV)K57Mz`KXNWoigCl(1V=ubx1`` z@TI4=7O(ia0$=x?27Jpm8<=U0OKB|%fXEYz;;pjYZ`E2I_ceOz&Cs7_ANuspekxZ7{o&0^f)?!C;>hZ0`L&=%I$C8HtcP5Vn zKAk)T_*^pC@Io@_c_n!cIIkz)1^TVz`JmrUCaVr4$3VZAd;##IPp94vOl!3+4Q1D=DJ@By+=?`hY(<*K zxALVU|684qj<=v&4NA|)_c_MNp9j-(mP{Q&&tmP4qHiO&DO1?LQg&ef`LYW?-xb3K zk^jHMK7RfnKHz7D+|2T+vY4Okc9`Oskc%iI67+YT_q(oVd*iDf_>(-Wuack8(@Mp=8&9@JyK|0H{HO3FdqVBV|FrHmcM#&s!F~I! zI6?WFozyc&KeuF%+)bG~`T1d{*@fb}Z$L4goKF2TyDIlcJW0M-yJxfe!^{=heKVd^ zKJRLGRyQTT0#DL6GE0Zg*826cxVv&crJu8NNbcgUOZBt3hY%y$<`}bk5&!M3OZj;s zW@JL_$H?g^RL>Iq+%<^ghV?l(n4Wj^Sv!oLp@BOm((|Uw15@eg=^@J0GfO{5>gR0z zT&ka2^mC_v9^mKr9-^GWkMH4`sp4OGrh4|6rJmc)(srG#o==~no>djACHL38cj~9WX$`pr&U4!v_w*gf&sfH6{jB<((zES4^?X`CS3acN zo`==5$75PfKc9Y5xl4AcXVp{c`JR4yo>lIZ`nmIfs!s>>6I;t%zq0gmq<+rU&!zgg zML&1y=K=i`|Ip#}vj?7(zazDKwtggNId#8He&kA9BS&)NF9R6n=q=T7}Rpr7J>9bP|2>gR0zT&ka2^mC_v9?(zmfex>q zBlWZDbCoYyZ6w!|k@`7XKM(Np>)u&y$^Yx#v-NX}ehx8ubRLG^aQsH#XNa}t*e(Y4 zCJ7h#2(vB1LdK45%)W+5?n<0?j78muGc9{;7b%7cA#&vY&IdaG*tvB^r;IKc`58kp zhG&e=2xeTFaaYC*8GAAgXMCIC%RD}_Yi8ffk(skH7i2bMo}ali^Rmn5tYKLrvc_c1 z&1%SM%DOx2>8!n3?`8dzWo38D?vi~{_UYLb*`e&Z>}A=PW?!9sOZFYvk7V!6el7d+ z?4Pp>x;J*etNSC}|I~eN_Yb>QslYwCAfzbE@W)9=AD*zdfv>uio9Un{Jd!1hP*5DZqD10_fp=0ywCE!%=;lP zxqpZLo%h$Lz{CM_280JR4Y+f_V*{QW@Wy}x13n$_&4AQ`jDo%eLkq?iOf8sI zFsGoQ;JSi43hpgPrVb8++!V!hz3mXg96kbz!L*b6X#|xh? ze5LSjg>vAKfh7aS4ZMBeV*~#@@TGwt4IChP4C*_maL^ezGoFqU;2BuEJ%#h$r?GGK zEY5g;#%ZMx-<+~k3NiguLPfhdhtD|K6yldNMgotYUIJV&oj7+)CysXpaazh`%<_Q0 z=S;$Nl}Ak6fkC_m?&;9Vu{GjP6DguAPH3~>%7!gHabnsZ=gs*zYc9Y^>@b|7o+wVh znR130Au@5|+(nE;h+@$Vr_EVn9754~^fZJ#6DORrM6Ngs8Y-Y+wiqDhK+9ZFD5|kq ztr3GnE!L_H(7F&>7m1V5sh=X2L+c8hW3PnfRbmvr8CNW>$C>txVzk&I#)z8{%Qi6) zC(KiECR!$LM=W=UbHrVU$#CQu%iMNW@@+NV-ycws%+eJrtr#M00CDP>|MW(!0bdmRou5yRyChr%$ z<%3uwKO}PH!`SJ2L=2LTiXrkzF;xCZoGPCZr^%Af+r@aPD??y7po|k-N z^Q5fBh7dCuE3;OBuFWEulpG4xHizQsmeUJus83EVus?H#GnTN-gq#BKFU~p1!M!a1 z+clK-n1-+l-4;&DdIL>c?-c&`e*ll1GGCWld_J0^XLAgb0*WTG3~A!OY%w2#f%#n zl|4$Q!oLqF^`WK>p!9yjs4SNSu> zC!US4HOx7Wamk4k%gPfg!N250lDV4sH=anP@JB|K3Kff6bD!Z9??6U({wSR))a%1Z zXUqDd+Oon$C%u5!VvsZY+S&|fgB6!_{Wvf*vU_Zh!n z{DIL^OzYfsC5M436?d0V`6i9|G8H2*qv}1zF<<%iFCm@X#(WEzL1U=LC>rxKXq6jN z#*ptwmRZH9+Qkh_-%{ei3R?AnNnO+)m zYV^^)^z6>qCu&QZIeI+GnN6Bga;OLHlT!-c^|PtQzK~0J`|Rl?&ttJFQ#DfGK0A6; zzPo&%n@#!iB4eMNMv@PZ&JK)e0gBgcxzhjroX0x~aU!?bft6%upPX;Od98~2KzDDT z>Yzh+DtOPrpJgBXVf{|L@w$Nw34Rgmma8g8HcBRCiHyyCVA z)VF+IMELulfgQBlXSW9`-&5vt+0CW?s*G{YT(VQykm2hA$#wIny{k5*()dJ(I4_1M z>^C9Gjf`_Ce~K7`=MsM-qsoUT&Q&uaD%sx>O3AA>t1NFjyJs3|at+~L#xEFswSB=k zp_cgF7>CtTuRE6UEan6mmF34Smle?PQ{-Ks>Ti?lC?C`adrJu}ql(Q%6w56oqd`AV zHy)V2fMUO;q+Ms?bn2WW{$?0h75yEEZ++pmvwMMpJI=>t@sRR@Y*X0CqpUV`~;MErh?xF*j7C2Z3X#11F@$8 z9k|&IY%6x-ObI6kKsqPh)j#h-Z)j11sek_&x{3d(udUA>PFL*ub6ZDEJ3}c;^P` zkm3`h!w?@ceu{KR@fpw%{}dMhkBE!F`3h)YCA|drJ#K|a@dM*eSWg>RQ4`P#EZD4)97Icza5848vP033@rvTBKohGjY-3chM z_P!c)7shUKGdNj5L-dr_g6;*x8$9xQV7|N&oB@nOv8u=0W{ktIvX|mSpn-VXX4>;o900=odHMe-hC06PIv%mHGz5xW6W)B_FNx_=OO z74`(AxSDY@_5}=a4dV^+anReaOCZH9jN9cdaBgF~1G@%N{82sw&RvXmWB(T(rT7!}84TRGAbd)`0nXEmf0l28^97~&J4#Epi-p#KS!;z#Uq7~%)UpX68I{LCnfZ@~Wr zdmrehjqkuW7(K=h;FyeF<0tTaK-4bd7tl#S?DiVi7Qs;?VJpLw25wIf_AV2=q+GS;i1>&IF?8 zG=_mbi*dFw9CW2I0{ki<`bOgvV8l2LxX>s9e-RKpo>2_?d?0!}qZIT~V+`mej2jI< zI8BV3jB(&!&UlkC0sNa8Z!so;zm4%$V+#1cXWU_wfqx(4{l+x#9{{4qGp2)n6o_}g z%$cA~Mz1*w91mlvc{b=aW(BaV833MORsz$_Ah5GJ513(wfCJ3=z=38BaF7{+wjt&M z(1RIIHKU+UGaG=a{P@ zUkSv>fr7fsdJw0-rD+2R>;&3EXM!0`4-O0{+Q-2C+PCJ`4IO#;?rX zpuaZ%0{q5&5%{h7GVnWd53rl(HDH$K4PdtCO<;G=K46Y#Kd_(YZ@@gyJHP_ZL1-=n zqGfsB1rGDP4?NNHA#k|o5bz|=C%{uZpF#38Am$04e}bOjIShI_<1Ej=z&VR?j^``z z1B{iPZ@{l&toD2d{yd-*=X!ns9b%mC`3ambW1Z(0@FPI<^B##gBkn5#&-0ju6bl&} zJzj7YF`nkm*V~nMr|PaQttrJ7GsLH5Of>wAn@A)ahB#C0{VC$ z#%u2|&>etiYu@3YI|I?jdPe~Jdrtul^PUDg$y)>*;Vp*DDc(}hCo_)rjsZQ!>j(P1 zzV}V_fA8fwK}Q#ai!t&}$g4@YaBHB@pAgHv;-iYG0^knsMZo*LOCa+A5UtO<4ET_D1@K|- zD&QmD)$o0k@hR_GaQ?*jw0AxD&j1bag7*^OUhie#yvexF+XT*AjDPiR0=?gRCGc(U z)sT75yBYMmjPHA|1?K~xAwKh750t(e!7+dsRef7Qdwn;9_5h{G^4$Wu8)LTb_uzDA z?BUxEehy=v?{@I>eRqP>pYb%`A3+!U?g38q-3Q+-zWYJn$at&oLC|;l9tQs&-=m=K z21;?i?{UyO7$5LG3C@E+j&UC>nCu=0}V0R`UN<}k|s{9EfaW-4o2;5=~0&ca20B^E}0dKa31GiZt zfVWtu0PnL-1MaknV972Z>a$f0`b8l6I;#}8*BS$S6E~O9zX8#+S>u3zwI%@fTa$o) zv!($5Zj}Mwv8F-teQP@C_ZUC5W`h3Ang#ynK+HC+vw>e&6~Mz*0QfJf5_rT40>8HA zLGl|QMlLG^`a2+Il1cM{DM>ZJ)T9WoRnh|BaY<2N>!b!?o1}%nwn>e^c1afik59S? z8rlO5(IIIG=#Gp7l9qv!&p0G$1?ZEKR>5}!5c7?s)xeQSYk?(6>w)8wE`jd^#z{$+ zfin>(#gwEb(364q%1+WI&}S!I2|Oq1YT%rt&A`f}Yk`}Rt_NP9bR+PFq^)KfF-n@) zX(*9i;Am+9$I4{j=`s~KUeepj6J;CVWJzx=PnGR~<#=oMcrjOY!mdLtG;|j`jC8C- zf9FdEUgh%wukl&HD|{yKI$tXA1|Pkjyv5fBc$1IbQ{Lul54_da5v%S8e4WG&u`R^} z-kO5%PKeu5EZ`qfl7V-mqyq0sp|_3iPH6+YH-+9h-jUKC_&`cW@u2u~N++y!ySDlw z^;wbC>PujcR!3656nl@u+bQC@)*XB)@{u+Ju-e?#rVH@aHr;@KXp;@RqfHL*t~Nb^ zcem*cythqX;Ep!^fDg3k4}7SN3B0LI2JneCg}|L{=xyScz)6*_Kxe9a6*^PpUg%7f zZ$W3O{3~>(%D162RsJ11Q{@5ZOqKtD&Q$pxbf(G=U{$L82s%^c$I#hcp5L~E@9Jgu zu1H!r;EI#4_@?u5xi{p!ofj&2v0yY#Xdmx^oe}w>e1)Gc%a8bpcZ7OkLs1r+{qry@ zHcHJQcnUejJQ>fC@=EjEd~7Mo>&>h4Dg1G5mINjEceZ^i;=v02k8S@E@q&L(+t1-% zGhT{J)3cP`YRAb4e$XxYcV2^iN8;H3FiXJxXmcJC(Sr9q_S~Awtv-o(CU(~Be^RUn z5bcg*f5v01kN9N8yen|d(_hgM(5cv=YlUBH{OBEfs;S50M|HIm?l+|2myTa&{4((C zhC2@3MYiYx?1^VD{CeZp2fu#UGt0xTKYjzSA2tMc8iwLG48P&H*DwP28cxRV6#P!b z?=<|1#7OL26=V0O1iLupxT#Qy9hpkh>Pqa!(A@>pQT!gn?;-pi6OW3WxXJJw>g$WR zssBCd=MVV(B7Vm1h=o)6_IM+`y-dfsd}sV}WOqt7R?49hi1qZ-2VgJTOnVoKu5=s!6rs#$VF|8v~Updz{=D z9jRX!sIPM6i(rd_RmG9oXe1o86)JXA6i=EowM3LnC>lS$Vrpq|IT#bmCXFwxC@Y>? zS~{^})U?r~OQ%-&Cyt(kAc-nUf^!<2{1>I?1#4sDBXI_2*Fc-i8CKp{7Zl~eMX~Ai zAryjR%;=EIvhk71`A9%ntUeg15ztt=s4~d41dhu2WwAgkn8<=ODq%1@Di93{c%j;a z&I^*Tm=LNB)da#!`)d*BPkZK@-7dC(Nj1nDnm&HV|E{)T*cuK)QIx> zKxMqr7KKBB=+t0cBpO1aX>?kt(-2Wb=Z5A9mMe+W1VXiO8PtwYr4ndRjn3_e%NoIlV+<_}_58dLI^eiKGaIQnBd;3jgGIGf(*v=}YA4=!4wRw0rPv`{QwKYa;!_fw z8)yh0&8M`!K2l#yHOpUKADTCh`)lqGO3w>~8@S(d8giWF=WvcOqeF{OX{QDkG=$Ki zgr90O`fvT5ULQbLTTk5txN-A}(Rok>T;eacCbZhQtwNpKuX+ue{wy`K2 zPVg)VR)(T9LhC|8OVIwzm>Q^^7ql5%%O+4`(HzxJyE({CRLEGP7MM^~si}z$HJNj$ z77Y-+DH*L9;{%P62I>+t+s;D8&(~5kxlsL43q6!gEtpOdYvBXKXq4oJ($cdbOvC2U zJ^fYG$Hy95gyJk~$qm&WJEDoGa8)gXa8|cqPr%rX0rn_-s_w_M7kS?zh+R-EJf;T2 zNcDMKM_YJuBjHi$SG-Dsu|O!?LZG}Fy;94h(yWLwp@sakXt4h19;ZQhMVIC(VAIuEjl2S$MX>vj#s3^cY_8lyO(Y%MP88aluBxgB|tu z6V;42LQ58!Pe7v+G$AhKm{wPXzLlrRabKt@uBPFkiZevbAXr`8xU%YoSXE@Bk+|@{hplWd8HELNf7Q^JKMaNTGdtRtMQd@&g zesm;^dJl=}Uz2L#H=fpaftFq1#Nfj57z|p-qg-fN=5N_MV*IU&)F|s)1RE8>nl|7X zNmcq(0msT3>gpmGV5^+&j3&J*{ZoVULQz`7m)2HBXu<6GI6YZ;1nsz}s;VA_#eKC6 z&9YM@baIKV_!Qh;@qmM+d$5X|7EP^bK@-$nUWjIu+HVs5+O&u*7oP7#*mxOrJB7pqSb2q5rSjU7Ta{{#3 zNwkkAp{0vrL2RC2o4}q+@m>ivKdcACYWQmzw0vO%O{a)soIUWU(md+ACa9vQAr_e& zsf$lpj~$F>%Tt4uK@91tq1w#^cHw^tX?xp)nTr)~+7o$Jz^fB65woLsCb@cd@@VF4 zKL4hTok_Ko!Gv{=+6Qw=*q#z%!wQoCq@1<`#s_QX#j1HJMk7%|O~kmQwv6JnC~hBh zd%7aEWHzck5+X4ShsEJYH0Y{Bq&8Tu_G>V`!Y)FvAxe94$|U7Mdm>nAa0OAM@>O+5 z9JAngKBOyzD&hoDW<_Zapf)-e3kxwlguY;5w0VZ28DUoQaA=Os2%+W>yrZXC`SB(e zMPotVL;Z}?>ioLS&}OF}Wl$UBeNUTBOYk$WW)AWWn#$sQ|0Jpxv`OZVrS3j&ed5}R9_!xF0Kx8tvHq+g+myYp(pJg(|St}<>b_4O~o8OA>oQ!Q&Bkwxf*n=L;-R-^)qf*O~qV$ zi;3hh|C`Vdjg7+o$0C#zCrlr`u;O^YW@$cF0?24e1iGAB)w8I9f>YFjNs_3YWonih zrTIH$W;52&^f}GExlZ;-48b*u^u}eGrKD;8@l4V@~>(fNiu9J!V1 zM1QR8c~rxeDo>Y4ra6!FG#}|mt~rn7Fn>`wI;oah1V`F}=`WcRPh+!k&}Q1jLY)e# zCR#VI?Mvpk%oSsTv}(fWj4>ZoMDW^=miW3%F-O2I-+3;MF69<{&S-yah?)R;PRh$U zIK*+ODhXjAcQa}#X!v5gqNvo-#BFbIs@#c0)pyL&M$}XU66;h;8LlO6Hrq*zc=5+w zRLC_I4b6&_yS2nZi6={&(yS&o_h&QWOg6%wm6Au?#Z?tEd{x=Ym|`A{hFoWf;OfU2i1}y`r5MzU3!d2^3!Q@1`Cp~% zsi_Fn;;>hjL7ig*3ZG-blhh}sC2pKDhx;q!2OWaqoQ+mkM5@*@ITBSXZaS@qa$c1O z>X8CAUXy4M*qfolUzoa(4lv6j92|v7lQ49q=rO~#j1EP8Zm^<4jKT>>bxf3mYQ!`e z+-SlW6r*q;M^kEy(m1*t8>+&-Do^%t9#&l+X_!|n#&ft)VeHLAuu6=n4?<>UFdU97 zMEC}pP0d3q42a^!K&_Zw4Z}DEy#K)oP?WY0c497#7KIZ^&~u>Irm-z;pL%oco`aRT zI?7~)n9b{8RHShimGme_4f(}g# zCXy4NX(XPNwDiT3GL~kw_Uece!s}wxfVxI3@yP~%w5+kV5*c2LilnAo#F!e1#FRfB zqfo;9M4%!Fo@oIwQRl@vP8u=eLcuPYG#5{-*Rl zqWP|c2$m_FD@T)}*?B%2O}TJP2`8V9DM1-{OiwgS%o35C$CR+M`Bwxu|Bvaf3+CVW zqr{FT5nrg~CzhD1Rn4lBQ;oRh_+6#%$3eDQu?we!jus#1I)~;e(NK?dNlZ*Y&6-GK z0ESd_Q^lICcXPP`*yRfcmd!!T7I~5GUWn$q)|Xteww`|@YKx&DF@*6tiQ9?oh|(0n zcGwLd9JV=8n`MWMd+^}Q3eoE0dt_zhB^8sVl~0~lUNN?4V#)YYL7dX5QzuQe8PSS` zNG5g%u*Ha8HK^CddJ#cAg5CGyj)msJ%J`4~cJX9PscjZb`kbzZ5~M}TDyaun^K7*x zhHD(LDz)MflN;)BHi@o$UNzk}!FCwdhl}tc+xXyITxW>XiK(hXkHlg)D5+Y=?YC+n zvNRg0$3TR+5c;cyPR!^u>(#yogt6!h)il&7cf1p+!3kOj&0Z~CxdA4!xavS)9$h3L z|6<#L%8@9FoU;A=i9Svk(uN73GmEfk;-e_-?FYxdIgjKfpm0%2j*Qz){=6XatJSkj zt9d57$|4Q*l_+CXrAtDAd9@hBLzPkI9#SdY(Be7680uJU2Q7J& z(&fY1E}=vSmIog)s2D#G|7+A7zJ^Uq_&DT z4z!P(c1a1QX$4OElWLNuLr@I75v|=6joV#Qu>gN{O?$dMC?Hn$Y9h%5aa5O49&vmU z7`k5Yy3O9;=N`&&a5m_zfA*oxP0a21BAJ>sxfz^Zj;ky%7h6TaT6Q=@Sui$bIwmi~ z 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 hfvXs}ih-*bxQc + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
    + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
    +
    + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
    + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
    + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
    + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Format modifierleft justifyminimum widthmaximum widthcomment
    %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
    %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
    %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
    %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
    +
    + + Note about caller location information.
    + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
    + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
    + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
    + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..24affb7feeddb42e27ab32c6f3bfe1ff73017acf GIT binary patch literal 286720 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

    W*{ z{uL^>Mn0B9RN@U$6d@pLRurWrwKjK<>0URwcW5%}`kjG~6)(f^$t=HqfcBJnkPQ*U zzj680;p@>)UMWoAes+rAadDbJPf4XZ+LVXVv2n)*+!J05YWkz^PAW;w3U#q7oGNz=AQt9KW1KNdp>@S^792q6?rQHll zk}a@I*Am_}KpbmvE-buP^W7#4GeGxs_uvG-_a+;s(15ox4!>`UrQKrE-fq&~5lg$>q#ZTC z5;kqNX?K}&ck|cM;64^83!v6xCa3(;bn^fs%3j`MW8|g9doRN>r_KUDVB*Xv!C9Gn z4;(WFx5`{UjV-*k^}{XbIjk&UzwgJcznryB$~qF$bI!fJ=O|+#&S33NyXpI-dya{& zg~VmgkUFL3S?OgB&!ygsR+QEQR%s(1M+iIQAKIImfD`uca^44!5xOg^Tg0cK&1?&t zs0j(>?`0<2D$=G?0{$AlTh6-B`yhhB9_oAB@aC^$>bThT6=OFt_Tn)RK#7W(&#IjH zY(|rhICi}EF=WmlxDJN5gBcR{B$l;}sU_=nOiuZNR>~)6sM$o_UGkf-Z7styNWGTf znf%#bIt}SZ7$xzgtqe*Ms&N){I8Nck{#GCC+O@B{aBk18?!HoYUG@d?U)UX#di=h^ zvd$&N!p5$?fv(_iVcC);$4^{pUw{9>m5Uc2I&`SBODgL0gT0G;wX)LUx~vr4wr

      +p8aUA1*FPRLKNyGGF8|=+pl9#C{(^s~uRACJD-`YNKV0Y< z=-=lDJ=aK$7B4nuY?1zbUHt{ryEo`U$-cePW*^%m9%^l^9$^s$xFgziEY zS_e255zqqkv?%z%!64bwT|#B39dzvv{N7@rDJ!CA@==A^>>Dbb~o`VFnr)LlP_F#8_LD*mLPFOM@8Bm`O5-IgVNCW+)e()iC z0t_8=mn=xY+}Yg+LhR~6hn9hlVH)rH9sa=Ff`@wM;w_lFC_X|kNJyBgdUg*GT2MGQ z#wQk;?yG@uPl>ny_X9m8iU-4TIwXYkD{$RbRJf~qF2~z}c(u~ILHC~SAOHYK<&Zqk zbppo959_wJsqLjU1|f!DjQ?mBP~b)zKYKDb^>GVAJt2fHy6uEyx<^$#tI51_T(LC;m_ zv8%cZq)MrbEaU}NQ<)G2rGUkOoB#o2WcJRk66%NK<=}*XLu%!m849RE)ppo|xD&(Uw!6*E@+h{ByC^ijquCxGbF;N2| zCL-*@!-oqA5X<#Qrr;(l7NdQJZlim>Z4C2@s@ z;#%q_>+kG_y0!<@u)r$RGoH_sdSEb7%S5Rw7UqVnnrnek3#9UA#5LHmyB88Y@FAp& z1$4#EF6b@5|4=}3^r3|Z4nP~yxu?JZVL=(D3W-Hp^_N6}lz}7i0pqMpf{&S|EUfZc zK!pe^%z-^%>%HLZQa`}O<})BCx>cccxYXZ$pcJw+MLQMiU8K0CX?SWrE?MZN>?ctsW~@NTL5 z$^kGOhyfn*q5A4{PW?DG7OiMn)>$}XepGzgWdg5979gT9MQY`5T?~4IKQt$SfGSvGuQ#$DAD3h^CAwXyp$Mib%n04%g`dAC#N^<>P80?$ z!L$c^yTJ8f4A9nj7&JE(aHfl``O20C;bbA|^*Dixt}z-M2o=+JY(FiJ_0#!aV)WSm zFFMIX=XM{&Kr0onQsGo0ObR|KLBe9bSyVWv&5d;;6nymGzAk7|)CR-elC`+M2kQY* z=DT|#l}qyMIe>9MtpxoON(NP;CAXD4mUpl~<0^n_Hd}Ak!GpbAtonUm2N@4oR9fVA z^>+2ZKA?HyObC7#C^2afNz*=z=2EFE=#jy?CxAc#0aPUQgv-IOD5&9;7GWLj_fZpI zM#w}cE#Wc%GOs6y#+()i+oUUGqqm?1stlH+XX-e_{;;!qXJNyh0>-KZ)YDgjbzz`C zY<(|e>0U*mYcEu;68aN@j|u}8s$MjgMVffvmr5N%HMV4zKR_)@!(f1}LT}fh(m+o? zTie?W&5^SM6c#&0SX5B9TtvU1(Bsr+P{*7v>-ZQTB&vqy!%$_IuBT6Xg{yd(;D8%i zR?dSm%CfW|8`Er~n?m|Te0m7K#jF>%zB#c$NGghtIfrK=&Dgq0L5rB-as|#NX zW;4;pl-j!T3|WR4Q1FEuPR8N#pOS#wE`Y{XzAILF(A|$AM~zYP$Ls)X0+AZq!g%W~ z**U=}_d~MM@)^#a=pzxpVE+KZmKv6HY8(m{%yw;K8z?K#N*LK897=7HAky-{N)W4t zN+^#(zuRY+dIDQYqOw((yQ#Ir(IDutjU7w6-HRyAED{tKFb6@bcR}IXylumo>*m7N zdv(9iowJguhFW^Os*qd|m@&aHwsvg*`!pLSYq1o8>3EQEIdb_(Y{4g)Y;g~TO4PaId!kKAy;A|KPcl@ zQ(u?W3k#9mOsDU0dvaj`4nmuXdUZzv6$;xoO-HE&#=El)^O@EV-PYUO(eLk)s6Ivrj)MTyD4w6z&eB; zj94>{jK$tiX)M!J8Wa>d=zMrLT8cpqpj;5429FZe3 zFaSsv`XEIN`;g$f#P)^77O4!0I8Z*sfQ%AH<#lLuv~w}IjDwwXZyBLNX{uVTYznBB zK)Zd+P95(NLNW6rp;@#+6BK~j%IU;vr^ZQdXJQQ5DXY|3xS$U<`;zos_tmItR}UA^vLcD_2pd5n!~tLyiCM=Y#d%^= zm~8}v1^ET6z~(5@=oeKC!Gu85=O_%okLU)*)yZR% z-%sj>+eO3&hF@KD({!*`*6$G8id<;`(*z99vJ%lTVL`E|sY(?PHN8TWwcOgZ7mIco z1c%LNk;NQ#h<0IF5z0s+6cHuBo>HJ&SzMRJJ0RR{IS~@lYANW}ZQM&WtN`(kX`YIN zsOhmiD3af7C98whC*|;c!HR*n(4K1uP~OF3)0uLAq0xJwVx5){0Tb z8EHVPyulWmD7y=^57`!lov8%nmI`)dptpw!kQZ3{LQG*Yn7evwVZ+wBg*B_UZrB=< z_@WKl&fa{%w!%fLw`^IxY1@W%TMIZ85IZBVc|Fbp>?oYGVbfaZMBpv78KWIL7U;K7 z%E45Cb^dN@HpcQ8jVIYEl$n&W3p+MSE?G*&N0n_BD7tOKwsY4NF<))!*sy8+mJOTE zT6f;MP1}lv^VV%S^K9U`dd-G&H*DJ>ytID9woU7{>S>167RdRlw?Hqw;M~<)3g=(2 z<^0WC*XeAm`;@)h!9WuZf<8UuBTD<--5h^7-yrMea7IN32L3_p_JA#<(R;vW%!4A} zNV@{C{1Y-(7p%euWMO4-3VKRcK;D;1KK74kwUMDJ(%x+I%2qT)M7YmuMOic=Ef=on z1g~HtK`jWN*||MkJ7K;i8*b>skS%my#kr15qfih9s{p2O^dVO3Aq&`jb+93JwXioH z_FI_BSxUr%#wQOEN-ko93^@1YkTU8mfi@OfsbOA(A)I=7yrxT)c3Z;Ws z1;>o5$dA#5<%4cnKu8#iF*gBsD^!XCLZht}m}8v4NTn8g^m@nyvTdzmDC$)qDdrx4 z;CQECMN?ql&@PP$TMI|{EY?*OHs&o}WbR&&n9%q7K8(b$@mV;BxU~oYdhj49!%jYM z5VHw3q_7t<0COJ7LYdw((5L5gq&GN0f~}xqTPSKe;AR7lE5vD{Rd<)bKx9ZN^uh+A zjEaOvXt3|vja^mrx1k0OqF|H?Z!=1Yo3`1}aB^p1^)A{(ISj2lCa$X^6)-kHF4_lM z(3sI{n-a=flpd$AQT$<#vKT6?yY~59dV|Nrgc_1nCMGeuL&4kAEfNOePjKwQc+!R( zR0FG#h%l6c1G^94gjF;;frS#6+-zt7)45s>spaopj4X1Jsl*{#fCst+-bRsf~YZ zlRX5a<3*bn;|Eo7#bgX_p{gh2pF}qF*%Q$RyO3DpXc26j>kJvqfS?U};eaTr90wer zAtfy$7~KPM8piC<8N)OrHLNG#Lt~$XB2%VA0URcH)kZ8R@F%o0)Dvd3hZU>0#EbbYjma=Bv*?ADK36U&+2CS*T>_(zE=mA=3mMj&chhs_V9wSOjF1 zQyn6dLX(7T>rNk|D1dzeN~*42jd_zpXiraf@9q-J*}EWmKtoV!CwEA@p`XmX7W|w=XduF3ASuDf3Z}rS zAjE|89Fk-6x`iV03uC8r7?S>KV|P|-A_Fi7bQUf`$=(w8#56Yzj*ueT!DEK-r0Akkq@Cz)S@u&r=wiay>1loA4j1~0GZMxKWu}p7cForf zj*i(5{GDRyj9a3^oZ#cg3|)AUBeUnipt))5x(*z|HHFMd_XTttik8Ysia8x8sD|1i zy40$65sqkkJOlWlvfBQCsIwQ0vaZzIin)nhV;6iBk_?Lmgp+_+we;;B0Q*68z^ozK zaa==%=$EENT7GGK(@+&pOFPad@sBPujMD4xJ-)A7&AJi)@wjuxvL#DTl2L53ZncLD z*JIZUJ3JUirf+1qYS)uyFkv6g=HHFEuGc>Zf|CU(`yxiI0JPv$W)2=o1MX|KZp39+ zT=BpkocTCcfk!$|SaQ;`lNeLw^x}CcE*l>=>^Sek@89oroa45_XaXx8b36cdD!1Um z*>M+ab&9K8da8AfJL`fCYgrEAeK@3l+?rm0Co|*E#ntbNo`3L+>M02Pb<%Ptk1Hcg zz+(~qXC)lxLm9_`8)nBxG>*gbJM+#b@Sns#ab|v;hj)-goY}zNj02}4&i9cQS80GX zE+pW;4*$%{f96H9_yy!I{|Sw0%>5tJADo_Yz97%XrhgUhKa%IO^8BmBSLGR>%QNTv z{EU3cDa!i_d7dZFi}1`kSLb&j^oc|RF$wtD=%d;rY6B`M+ zy7|HBlbsLDc;}4C&eoZH-X_n|Y`%XJ&y=%eE-~@v&&X$;6$|GtOgS4Cowg|DY;I%x zE9LpNHbT3hoiRt-iNo9F`QvuRpHgfqrktsr#QBoN=P%AW-(CDLo`1qSQkOEd^LVEE zC%x*Vtdm>$Fyg8$g(?C35cYrZ(l;WQ}X_I$&locjUq8vz^`}yYjQ0>*Vc$GoE?pE!SPSIpzHKbsxJf)H03Ie6Ku5Zeq?F83pIx z%=f?J3H)C}e%>U{{@0N6Z=5I4)+$vv>>hUnK8)zD z@8J6qJX6jcn+X5ocf9qEl=CG#r#X$UXZ)Jiv&PMMPIC@R%zsPF@8r4g&WBfKomb!a z^`mFH_uk3T@s&G?+cyu+Uzm0Nb|>lcJf7&&yEtk-DbKIm#k%V6{>xqXM)lpTcVi^p zO=ZX38|NJF zta1hfN`4Y+UkeXu$54jzspD*L-cJv<&RO`cM(9IuU@`Uoq3b@tqPV_5f!{lgU08Gp zi-4j6Vn@N=Pyw-{f(1n^sHoU`R|G}GSTTwXJH`?<_7Y&|(golR6a!@6C{MsNjk8IW5B8pG#6Eh|7eXe_m`4YV4vGe`$XIcyH;G-(A}KpA*q@PHu*;;4;{(cjbw6Z+5lLWtT2W>+^d+@_p7{e(Lj-ir@qdm=bQ%-E#^Xwqy zq9}KPeL{*OU1H}+$)qpY71DI6YosjD74|JFcInGa_SB^>_fckFUV*SL>tMM6_?tj~ z@-49acSAqnAODYXry-XOdPB8*OC$2;H5Cm;3x5w3#^(pZ<=~GI!oNU}3U&So(m|ml z4hM9o+OU%B%v;0u0(rQC>nsp*Ru;|^C|8ei^`+W_{8&>yRMB9$UQ|nSK87@e6v?O1 zaucXzG@q{EcF)k(YIRr)pR4d7JKG5gxf63krqYhg7m2D1vw52dFQxRI(F4sBDHcGDc6+8SBIk zQ_01Us{=YhT2Hlf;ip8;Xt{WPUcs6C6)dH*Zu~mc@{5kI&0hRAweSk0gC3B43{+qK z3~FI43}j^~TvM_2CLqQ}f^f}uqmm=JPPrkJ8_jK`iBhFWnNoJrA}JpgTUZBb&PMYx zROcB`6sW9<>-s)OhgVntk!v9uKAGKsJ^}duh9K>%THdFUhe5c`R=MRt`{(#|YCRuvhxj@EmP+oXk{5YR4O=)$y3Fgr%fZer zNHx%~XLm?n@}`t~Lb}GIG+cwPLCx89-iC7C798Jo-a*6GD_Cm5r=st99OYVpbWl90 zFX$1!%X^R}knZuGq--jAk0(+sd6s;rwq$5&CNSCFK(HMS}`h;?CK`Dx=oF$9>jG{Az(US4Qe3`>f{57`{j7sVE!Aa@khoV~AfC*79nMe?wVTpwz0zBR&LO?h8Q zCJnF)4TSd>e7&O@1b^k@A={m9$&=i%Mpb_9zxN?B^;_fx1tzyJdhrrrZIg z4CPLd4k|IEFR0{Ur5%W|-$2dTF(saI|4_+eN)I=DrNZALgE5>?`n%!hl?tFBc1jsY zCBwaOd}ovts-+{SIXkDMk_J)koHEi4kD7;5Eng`MU{_#gvmh76t|*JCmgQ9Ps zG=M!*9FSvd59OXIzEtuU>0hNG=?hSS`bKF^`iXLHl^9FOx@Kx;OUb%c)p#oTKPsuK z-AL{}I0iR0fm(Nfu5foX$)Z5(HGObDQCb~Fbv6gV`w9qq*2gE$O=sTf2&!c`$)S!W zO(FTI<4B80Wz|WfRitw2deSF|uk{K}7lY~}LfAT}yL8Dbl_qZVh06o*sH zptzjkrt;IF%--@?+Zl+WUCy3Wz@>P_Q;>D9h}kj~&%xthiZv>Vaec-U(z{n&#S+r{ zLyS)!36ZlrD!;#CS;a6eK*@ykuPatm64Hw(eoygdioa9*lj6S=ErAuyrAh^Mgryu5 z{U}zTSearCighVAg2-8XAg)`ukP99UrZ^62<18%@`&KCk`&>UL8=i@v$1xBa!X9UZ z*h(%@JtjugKOge#K9EP0*}1Yb7wziRKe{lM%S|{ZovT*Cs4%g=$ug*RdJo1 z3i$^{iu1D$TL{n8VS6YRQMO?<{L@}ft3^Y^nw>N1tLoUw57n{$ht-!rR?N~rtA7BG zUsqoZpLelN&T7=yDW8EkTmxHdMR8wEJbL`II%dm+Vm(2jSf_XCke}u}P4IKcFU1#Q-&@??E-BJrx^s=uGe8*8^CR8Vdp3Okb#9$ww3K*9 zF4YY8IS-m)ThA!EMU?Edaw72gya+7w6+}@(9agjX6pOPDU7KSc9yH5<{UY+5WN=O?*b{l3B|{?>9M62J}yPEK0V`0kDJls z%Jevr9yg`Ot?6+Gig6SZDE6Z`7-A3`7LD(llcRC$b0C(y{~mz8mAwBt$JHR@J$HPc z^@Xpv-+kxBXT(v{_UI|FKJQVTOlA zV&1yL`Jk9paE|G|u@>STdi)E;=P~#StC_mZL#LXdJgN5E6c~Hx9otg zf;fsv9X#A%4tKzr{JO)Jwjk!+@f%x0dh?Dry6zN*L-b-FcJy)cVxM;O_w-_)cf|5q zYz5CC<{yi%yEd`;aQkp^4B06*)H5NyE5+Ur;V2~*=k~Z*9G!T4j~+jAd8T=%Rq#%S zS&hx6$4e<*>Qo16Xwn&HX34R79rj`8BpbGy4A~={aYUa|Jl7f9`U=W(cD?g%h)Neb zZi_Bhb9R?Ko?^Ylr?2jUWy-*DuXEd7>f(GXo^d`O9)~5HP{eu?(tE+bh{qBAP4NvyOILixL9r6WCKRJ7 z#!>7`aTvv^6z5W0N^u>iZ>|Ur}zjW?ESi7oJny$#T67cP~1!LB*ibf zVV`e76z^ruHM6Wcjy)Hm7u(SNRq2wwM>zbMi2v8#Bj1jDkDZWxcki(ip11VCc_m&Q zVxKP_$M?7h<$LvTzRE-y(T5=Uc};w#2ugSjC2J&bFXvHZ!-SpidWlLf;F)oh6*d3d zGYy{kv*%ohZ+m7#6#FjsUN}}kKnUS2G){}hYst4Wmqf5mS7cf&{SKK-5J{lCk2v4c=s9d@ffej*d^ znzSjrISN8`^{ozj}h)?U{6Z-RHJZ1|R&;y>Y zJOH;sEsFIiwuA_u0SBZyFlIuT|9cswDhy@P(-Q40|55#SKdtiW1e0uRfTw~7$ zmK=eE4%z~@Zm&NGpN}52-3RyixUUXMxCze}((|teVNa|n#gGk7{L@E_&bc3`lY(0+ z0-_gdmom9b5Sx;MV@ylIz4StOK8P)+xHjd9hZpNVcqfz`O>sKJAa-f+5m@T$!MN0@vU;x@vqlO>mmPoEF<#HZ&#^kNUk;QP^E zW6r`-*0H$892CV7^^wp*Kj*8aZLPC@3F+UAJqtbg-`KZMo98$$|Ah3$-El0zJ@+{}Mq-`13E$oIVU{fzwFzuTY=nTLW|@5Si(>8*(~(N-AIn zNHIZ}%d(vCjeuON)Ft0&P!Cd}^}26+I08$Sdg$8)v|H*Q-vqdp^N^IquMg-`DQ~}l zpwEOj_RPXAkczE1A`AOk3P)sNH-tE@2`dW-#-0^(ToYDy!&ER_CHkNe<_dTPzhTUS zMTDRVc@4j@aLsI{RDC~pxYB1cseniMO#z*j>IpeGg+l)d^!|ROKm{__-!GVzW{;$X z_@%-3u_2YQXeOKFhu5TRGPMBaj=c)z3ar^s(wqJO4)z7tyf-UDxg5WvttRRYhJXCU zxg8uV+*A>BupXo=OR9ewT#?jQYP^3DXo%EI|66b!)M%-N{&zrAq}KXBV7_d&)DHjO zK-p49Am_)HNnL`RA6r8zwBCmH{Minvm(ZR+E0A)Oea6bN%TfVl{|0?0#BhA&*pEUm zT6efsK+Cqlgy*z7D4OPH!&6j5}Qn=>Jvyu46k6>$tlzqc0;6wOVpw}xK z%mUeGl*^*I8^m4;S#Fl~fmbvA5mT7EPs;j(tTk}CEQ?yshXpe)sWRpKL1m??L#`4F zmWqa4C00`^334H|;E{#=X zL!=&;D*}y?;sJGeH8w@cC!jGXU8;IO8vI45Y^fFjMW7r~re#1tOJ0Mmks2Ei1KL6o z>$)bpL=x+|Cc7bp>l0Ly))Jc?(1C}thok~tuWTHz#m3gcTmfGfFbD2&{;AYQ0lj%R zyDRl+z(8J?9jh%$UJFQtOU7-q56fV`1-P?%?3$EYc~l_$T~EfuE1({$LlRrF9_t}w z=~BT5O7@i+P{AKGL~444CGaQJMoZ1B@Bt`IYFULfyaCIS+E8IVXsOh0$TeiEq>ezY zA=@N%rot`Oi0zQNRN)S2zm&yq3vbMhOL_b402Po5`41I7=1o{k9UM_1|GC0p-jvNF zi4jGx)got|QPBsk-`gjZRnZ@GSCnKq6&*@*_LNk>@DwCS?8d|N-MU_ zB^Sd!F?9#7jr_{gYNa*%!_)?)4fBLwE5K_SUj5sYwyZX39_S;b9cxZ1wDt_T1!v}4 z3-JL#8due2R2uhObtq7u`Ek!M$mC3mMxLW4mt_iD3ud*Ug^Zn2=TQ+pDSIM zUqkFmA>R<>4%b^oNaaHIBr;m5rs}aTM}%K}AY;wp;2_ z&>hx;m2XTfSigaOCa^%M`=m-j{8`X#C4tqHxwkO(1lCx}7JLV^T9)(=zNhqLjwYhl z{=vT}y;!=bCrTo-;2*Vt5d{akv)=G6o=~me7fNr|g_OY>K%Ko=A5;G-No==NE6DX_ zcS!emFE|Y8$KD88(}La9Waick>%3>(6l_xmurfmYT=0A9AQmEZC)ig_VRfZ=rT5gq zEK(}Cl1&}Lx=2M=3Q$v7U#WqW?!aF~86uTgDM%g8@DJQL_cp`vA^a=!d@rN{DvAt3_KPRzIrEq>uW}i#p{G7syq;P&tWA~+Seokjk zge*8eXRv2dI6r5w7qTSI&l!xvpMQfjZ^8LFgTdt@B%Gf!SXm*4^K&MvV(J%V7ON|T za}f4~QaC@;SVxlBzofAglGuNyvAaUF|D4T!5+yD9A+6Ne?02dCA?-opU!nd@NRg86 zl;@8jNos~u`lFC!7rlfnJ;%&>R34(bDp{S&UWgXx7$uXv7JZ>3olF*kf4m2dd+^;i zll37La%_DbJ0@hs*0Y!ff6oeEjo5k?i<83E=d;yP*!q0-z*MrD&B7ybIk8?AuvVr9 zvIVS@sZ8~KHkwpO?@o(YrWC$AEn=UDlJM@d2>xd5MN&Z|zB?^p+oBl!6Yow-*$z@+ zBp%l-#RN-dIf2V7uTx93t@1_}ovge~%`r>fsJuu0fH|V^32|Jof;A>(S(XHzRadY` zsl32KP z_L0O|TEi|%;aXb5UXsMDTgw7l;TXhvS;s1o#CBN6qD>8izuTHBWa&{Q4X!&ME0tQM z2sBL!XX|>FA%(MbJ$s*2NJrZnSRP5VzLC8aqB*~by%o#RXg9IOG1xQg%Rsh?wH30g ztK!2pvo2EGtN4R@NgagT7M3h^0diZ|FsWOR+sejC{SLXUY=RKXmz!!n%aA!drrpLC zNZ~QqRh3)pL$+4Rt?C`nR;m1uyXtoKk<|W>2cSbFv2Ay-#%*y#In2B2uj&rg zha}d-M=Yd0=EQc`&8i9U4ppD3yV+P$4trX4ow|qR3DM`VJ?slomLvJ!A@Q(g8<)`gsaDV~-a9sy!`&dOG+R_JDRVm!k2Us|%&^o$W4ecOnEH$lK z7$}=m!0_|tA?DVRMnp%4hghhoV0M^|mBLR_M_4|o(1M@QkFecR_!<2Ov&B*^G((QE z(n375nmaqn0;M*Prb^+v+EJD*wTp6Bq>hk$I#Hec9LblIX}MCZfp(Ntl)7838K@db z%-v&bBuTv9kF!}M@me{~@=bNsjP4XPQeCSL($28TQvItB1J#zo*?N{Wl)~A1mbH``S$(W_jTJtI*!+bG1t>+fc8yIqe4PFNNO_++^dWmeshV-DGp5R@S)1ZnLFQJ8N9kZnJ!;y)|xXKeA(_d;C}p zcXo%Jk-1wne$?);BB^^d*7N)9HzCXKHPYBm?6K6}B-WjJZBc7t&Rfb}vsn9yRgo%3 zY9dvw=1s_TBEhk6P59=CrI4~%G}Q8dU6krfxxgOSf|%D2ST$4rP_mAxC)&@f83{kt z{ZIRawKjA9>{qM;{uS!ms_Xi10wCP(k4@pbZ;5c$l_Q7jK)W0?7YR{M@0h<(`KA$r?sgPmMp0iXb?Ac#zmK3)B7n>)A zt^dX5OJT47Vhg0O*MG5vB(cu^VjsvHw(u9*Dupe)WILp=g_kU(C-$t6VGA!=6De%r zC2J;yExcsSNuq_9tewnZ3oqFwDQw{tyDfz+ykfDvN?Lfu@}#hZSIjd}VXg5j541tf8F_#X@GO)b#T;Ttwmh>i~5uwznqboiFR zPZr@{A;+V`w=C9FvdZ{slIR)dCxtA%Lwy+MpGgf3^#^?=H8He-uJ9tMjL>GFJ3{bo z9}U;kKP8F%pvEKmVC&*oQR7pE=;&AH1w!-=r1OhHd`W0~xHdkvFD{qE)`oV~4UUiT zIPzL(iVmj?q;7|f(&4Lpsh>h8>ZN!$S}x1-xYi|5lGMMoz6PZT(YtnOKJp#SCW+&^ z(tL#!9@mxT1)?O3@3wB|*GS^%!i&fC!}i6|#e2LPNsRqHK7@qFtv~7S@zGLwfxm*% zNOLXqYs2@#JWJ+wK}m1EMCurn^yV96$v#lh!9Nr^8iRxHeMgr`g?xVPSGt1-_Q#%y z?{FPFObWllb?}Z-_#Lhf?6Bu;Otou=oO|I0sI8zM6ZMRc~O!+%LMVOF3Sa*%e4se zFoO9tm*pz)UxX}!!|X;S{)g0*uri>RQVYUvu@DYFs)c`9mepZ*Kr^MbL#{H)$A-G%?>?c~OHMpPD(9rgv zAgPI=eT|yDx>QE!AW&T)cpVKlLU|-f^raSmJrwH{{jAOHsi*?j7mPD%^A#lcBo;c| z2;-MY_zGWP)Zy2p{;jnZ^n(z+I_mPD-_bv^{63=kd=YNqh*nL<_4S4C{SZ4-%MhcaB6CR*8;Fy8&=|k%TvxYpI za$duXT#GraVdNpE@@|DN@$DKCBs^ELFa)KWMR3ow~PJ1Yao?Q}+&NgH+GD zr;O%&hg53a0#Lw6F@|Y%(^v~0BDJ<|5vZ2b3COkN4WzC@t|f0lDqwr7hiQ?#s}#N) zM)3irf>|^lE5v`P>&{y7@KM-a0UUYE(pqsg8kNc3)cwL}%}0_ln4_LMYr|hih1dJS zXv0IsV95;Dq23jvEq^GL1SQ+?)N!Jg=_LDjQF4C0BBLE&F+pg3z1v0yenV<^y?aJS z-fp7EovZiI=)_->#LVi<^CyekclG`-I`c=QOm?qc5sTxYQ!$sxoMOQ=!(e~kpbVm3+~!S`~`LC+oyYrFO0 zM<`cp6*@^0GqM-|?48`@cXHR>(Z52L0S$fNx6Dd9wg=}a8~TInQez;O$o-@yLoSh5 zk(vd$-n_QdJjnIt5mJjGm&9YFav_(*J4tPXTp!*;>LbYY;r*nJLar|#B2@snzI=?- z)rM)TA0IDuzhMz*qST)ao4WPqGo_41k)U}}{*8QCGG8oJrI9}D!Ti3| zDQIsn|6S_yMuW5={7>0tk3DKMw!IPwLPK@9wQn+nL@{v-wZAbD+ zQn+nL@mW&1ZAbAesR>Pd;CJdvq%xZLgH}l`h1?jvNoq6X#_-otcmy$)Ynfu~cmy$) z+eu>V|b5xTPoX6e--&6Zl<{IJ%$6 zmH8!gPUIGnXm28)DsuFl&P2YMBwn|Z_#qOucZW^lmTasggVllivP|Y7B>249)E~4- z=Gr!$=r)Bvm5K*V<&g_;xhzY+rfF;%Pa$QnaZS%@(|F_eF;~pLg-_7a`CSsWH^Xf@ zueOkuqZVfH7?LPClV21$dcU2?e=#+X&E%eoXgT_>YZmvB!tc6f@d{G-t!5gpB8A^- zrtvV6I4+pY6NG3+rt?IS_|_<$j}Xg2>;5c*PZzS_wIg%*94WkZWDZ~GQgSX|LCTXnQmc=)j+Tb>ypE0$=Z2`9|!R2z;hfNQ< zE#y%`^jcZWyOQuT^BuOBV>vu7$ZLAiZ3$1ITrvN#>3ixjzK$g3Sq|T7%Ae)%141;~ z<@^&V9PM&`Ug}}fRQ>_~Lh4o13vM6qYeF>k75ug-f3|}EOcLv5C4Wr9u}{=j^0%hG zaa+kPOR?9OyXlt8%bB|Cwu)Ca^_$xo-q_SLx3#>ZslVOU@gAnQWj*gN)v4KUZX5Y{ zQ-8Z{;xkENO>E)wge?7=!MD)t$c&jO2}>H+okq2OJn)`W2vLf zia^Img)pL%ZrgbHG8|t9JKOA}+jc&YPEVlREj#%#sc#|o5l{I5ONv+O9zKaA`niYC zdPnm}#k^gF!?MTR?p-3vTlVp6v!p-U$5)xU;I^NCC}imqk;)J7y;6fCF1Q`wN2Nwb z_^^ZgwA73Uf6zrzF~=4T@z536&q9_BB@gi-B<$w}w?ll2kYzWtaG1}QIteWt=Gk&N zTrWp>;L4KG9^-XLV!j;X5hR=wxo*dJx+n>+fN$K6^UPda4s&zdKH;lPRkD1-ADXIZ zIl;qMIZM{Fe9F^JHM5-LS4>4)PVxGyoh3V2&hVKee8v6kc8;g7aprni3iw45<_1{` zx!*cxZj|LBPbOiGTR!J0c_P=TSxw7je#lfO%a{B$DF@DT{_XZP{4@wl<}ge1yKYzc zY9V@sf6EV%Xckz$<#`*iWCr`F`AW-o+_FjNPV@Da>wLVF(jq{;$>)*8zV&-^hLmZs z&El%PmRn{nq{U&&Z5N%f{Aj8{i@%J!rrNZ)WVuHQgmd1BEv~p|I_N&%39SdR3`_Zz zS1dpAb5fC@2mChmOw5;`d7sS;{uOiVSur1JYOm!NenSd-_K-(x5hX)foU#1I9b1L4 zXODQC6!z>f&lj>{&mQxWQrNR6{06Cj4{7OT{e!{uOf^!+(6H z6prByze37l^IBH6zTr=IVM)_$aV>dSt13N(EQ6qhYD#}ImjhaFYPGedvO|`{V~twM zKB)y!w?N0FK8V8H8IsuV)>1A?ZH@9(Ybmd!cENJB73~1_MZEXdR$7p9Ek~j@Si_Xg zQlEk9DE*|ag6b*bq<#T4P%@?d1vOGON*U1`tWA{NLU49{hqal)4q|)ab<|v$bO?o4 zWF50MR~C}Q>}jEFGIfWwP!5?oYi+4~XX>IgQu))=HYG}N9L75FimWTvXr&TKT#?mE zsVM|kWL>njQW}`LZjDif$&z@DOB-dR6kg-fMwuv;9dy^)Mwus-6ZDIC0&;E4}NWpS6-V^ z-McEO$3^S@!B3QK%2O%4;-$Oth9s`R>aJKm!IG$dl^#kjDZB=&r?QYFuEFZ1Y!;$x zuzD-Ir0^Q7B;~j)iPvEDRW3;3HCX+W@1*b=tp3VRQg{tkvhrLCufZCquoKvqdmOL9 z8l+gIGT|Dm6!UfaUPuHpMOR&w2+x_OC}n6lyk6=o+zqKQ39q_}V1t!dA-d{nu(DbT zmm92XCW))A1}i&BqL#tRaS~p2b>$TInc-vu=#iQwnF@ zIAxF&&bsl+7$LgOYJxIe3TNE}Ws)q3vu=ViN9J(WO;DCf;jEjWtdk{i)=gBln^N5; zDF;d7)jwG|V=9_WR(=wqUj$51ewV^u1WZw0ki`4LRK@2ct`||uG^Lsl!!s zW8p02(L1?n=dmw2>=az*pQR*_a#>NU5l~A%Q{&y|D?_Bpv>4%@tz?)Q@4i6EllraI z4EOhyFHFsKU!?pi^{mxm_a#c%0&FjrJ!`eneW}t^N{yM}zDyZrYOecoWwoh|?kkkb zrgpgJDsUMA)#4d5QD3dplqwVBVXRg$oZ&yA zq+i04xt8s%4||+c)=C{FZ6=9px=$+mqzYTtb~~wDk;0yxRDO`U*4l@iRDP5Csr3n{ zGx&4ri{(}8D6fTBn>JzEDJA_2 zQD+k5PAjpOg@%(JNa4BU)5_&9MQ#e^-bl@9bHU@ZQuiy7!*h|Rm8Md7F7mVzLn@5Q zY4bnrjMD0BD#+hZ36+Wv4+RoinHh1vdR$`{tsKQ8jH z{cEZzwD8(RWo>U<6lh~Au6O*@)3jYxo9d!4o13ZHFa~!QdDuKmwSg8qT~yXq+C_mj zFBes{Ib0NG^K;6xYr8a7&eY&{H02#Fct?4paGE{1pLpqBPVGY~;4j;GSp(G1NQE5d zQhD``DGyr(^&csmOMz;&YqTb~rCnKDusYIIpe;l_WU8vIs>;4|mJGAiRI5wjT&k_M zGUZ_lQ~OHcT&klkGF8@APrYI)(AGfpD-v~vz;swO22i3bS=mpGo0dic>vqh~<21dD!CB%2GI& zx~bhwm9_OySDOm7^;GYgs%q=4hTaslG;J4V>!xxIJ!Yz` zZHW5XRG=+Yjrm^G*#_3q2z8mMFxwdQxR4d+(s=c<6wamb>K!SZOXJn&QaG2!tNJaf z(~5Ixyy{2FV0!x|w()91lGrazRNIoo5!pm_h$(+IQJrKe(l$w*XR57jike5tVOi}v z+or13Zex2{^v&}$HC$>#`vluGwJ}MwH_iEa(2uoGfn0maiEG8CtMQ~;Zfc!b%zul z<;_y}NriM+W}BrRlft9CS?U>*XknImRpg)rcgTHj>JI3ITy9v0TP#g|Ej78r9gyWm z?29-So=t1Q`Taz?6n;Ok**3>ir>I@Fxuz1Mj@q)+OsWOPcg8kf-A5|qi#lw!Wvj7w zu!T&^sty-y3)JqU0=@%s3)GQPr#pCA-&YTjGT1jAn%EXn3%JLu+wlk6V)dFVxuj!h z&!uYIU97W^V=hNsc@HJ#%LnRIl2|VvsO#U!?IRU1tmOl>^8J$KR;uA7kz1+mGIRcH zm3o{c+FNb*tXga(&$Ui@hQ%hp-OaH^=$U8Z*s-8*<#KqnU7j1EQMF4gk1YcEOXbH# zuuW=^)Zy4@Pz{o(bF-Q%ax|B=s8eJ~taFPxTMFykqGn6|4Rvl+mq}@zqCsnNU0Zp;}dl#_*vUCWY;Ns5X}B)X9f!S0knRck&0tl0=<5 z)I5=+I(Moc$sBHno$3X-9FAzG`n43cuv5Jubpu-1rQVhL4O-Zx{wnnvav!PBq&z$O zgI<$F>$}xCKbMSXkNUolrDbOywntqq)fSf9qvnysa(mU7;*#Y)R%72$f0CFJAFB&U zg)n;>dVZ|tNOkKR0oo-sq;oXriqte{eV=+mDid1Yr($dH-LJm1b9>MI>OGO;t2)Pd z9#o%7ZG_w*_0ca_as}JdInnco+VG)Jap%FF$JBPF#(JJm_e%Y*^9;{Z>TOb%1&^W6 zst=?*yUg=Et3D-(SL!*n>91I)7~eUyJ*m)IsY@C=r^ZV)?otH8a-!D@*m<=N z?QQnFs%E(4uBnS$a@SPL?b!SyD_oYlt?qqXQp=C(S(2#bu6oHOcUQgblDn@yaLL_QpS$E9sQTa-iPlvOGx)B(5w?RV&!=5{nC{GZvN%_Hyd!+Q>sooL zQ_KQ$Il3!IiLeD-3l)7~8#~WoZdzATp%vS+Xo*tTo<$oV6&(k6>ClEtVe3|Hyi_O1 zS+yBb*cW$gt`zQj+_gm{F{%J-)`TrRwUnRsxw+gx z=C9orB{}BGnkBo%&n{KY)WG<8r2;g!*Eoh^j=Az$fE4B`XdOtRFBP?}@2IyBy{A^x z21?<3YDH}XsgPO^)TX&C7o=slSdY0F5WpW#}}TWkTYi-o>~YxNZl65Fq?7GbK0)zw-H zSpvJmT{E;;snG6l*9ErK7dwBvDIi?U)eT*PYp0YmZFn_BPsW`cX#~ zJJsE0Z>K#q;chGi_vMk?sFK6$leJn(06*_7cq@HvSg4};3F}_aD z@zGglQ~LAnUe*$M#=zg0)BN1AJvsnjP+ThoAU%1x>UkX)#g< zVYxoqRH+kCXJ755)VZJ;_WoLZPq7@HlS$v)KdE(%~IN#d!nRh%cSs3=wNLFNt_8CtnD!M zuQEh?DTQZ3Q?;6K$38qWiFczIrbP+Sna~kh2Pr%gI#NrNCGkw?Xl*i?cd(;<(vu>_dT8PesW@_(A;jGKld}K+S zb(vbQ%;Bud)WW22)@5qVWJ#QL^R%|6mfEwlZX|s5ds*jeV};i=3~kq6h$K5^G|)c9&Gl@z*RLXx=_zs|@dPTv_3q*Lr4;FYPO|GL*wv=gxAq z3Z!C=xm>L!NvxOE+F((OHK)gQ`xDQGTv_(Sn>&gw< zT`Bx^iMM=7>li!CdbQxe?S4(+y-J?fc#hxQk#fcqxISwGUe%V9}W zDfY2ejU=|_KCKA}w+eh)L0ioE?c{zb{C3jU>!7JlQ5C%oo5HK7j%(3W3(koj?4M}y zLY8Jx*X<{$B#e*VZ%c%;yhKwHYI%KXmYknZ&qXT}nz#t>KUh){uQo8H|JJId*GXqB z`m#UjkK4BaFT`>3; z2%~+G(ADdlDWhjsuk)tL^-T0CFjW`ynW@;G$zFw~27@k;a1G)&JQtnPGkU&IE^3Le zt^?s(&6d5odR^4UOLYTX(iTc(_Db~nT+5f*0{TKbDRrk;ve#v;Na`)q3rO^INkdZq0ACZX##Jt$9sLlESTd zO-qr&t@)icQVO@`ciJRUu@$#wk+wt%x8`+iyA*EC8`>Eu+?qGFn^L$nzt^5i;nuvR zc~roD7F%&^-ZuM*Tl2Q&pj-wEOLS+qwK^5Wh$0h%?6~`l9+Gm{`ozs%_qD)4YMt&o`9Ql%68nOm&A#L{EmB;yK`D00?ezLZ zdq&G;S#~Dw^LnVc2VtFAmNTGVwMs&?pZ`q@H#N`mH?4)Kqh7yjv8GOWJ<_HNS-ww9 zV^6d>Qhz5Fffh+QdSAEyp*@l+-}|E1AKDA4u-->OwqROk4EF_3wNxpbJ(-k|)W#a6*u?(xIDcY6J+^&(}m$Dmi*F;W)OlBTfN z+FdC;Uiwc9tcuHJF*W8#um3bhHB7!77889#~!UvtH6eFRo7|&1KO^ z&%IQ=R1M6{WgV0L@zV5mAl!%KC++jn^#M{RL54n^N{SicrY|IAS@8N+H~j-Czdma*2 zDp?P`yA)nQ>!D|uC4aEn^c)h_63smIZK9+Fj|)oad!+Eazm$Gh3g7!n>9zQGwOtz?R8*eW?HC!kk^qzjPuF!$LJH5R1)%AoIe55)w6}zs(uT+tLiUFV(is) zEBts?Y=>=1HQi6hg8RtoIwat73tTUgtWM!kLK9m}nZs+WS9;eng+~c>-dV1$nZxDk zo5JN9n!@FpzO!62Gl$DHH-*c!G=20O(OjEqx zgCuI{rVntbrH4L}Bu3jqKl4uRqRVnU^vdl@TJNblNTQ!T^>C7Cp{KsXrDUSMk0e@1 z)L*-lOw>=eFR3$0&nJmGlk_VjQD>6gyhBOJzIrH0lc zk;HeS{q;jq_}yr-{)@|U1N1-M(ch-v7ryW(J)M1dq7BsDN%&dje_D#}Amy@l5&OM| z=z*p_@lMqjlEjswBlHy{F@_O(TrAd^3*Sl?dPC0Cm)@iFe5t|xzw;iWTRMr7yc7eONKt0B*rjDpX^d{j-KsOa;|>NrDUdl<{e!$<!vQa z&C`Duvi#8>t_jxvl+u&^L9fk{a3@Axi>EcgY9+t$p0DSddgYz1r*_3$4r`UHIu_{p zq+E*zsPEi}Z9U{JgnX59ls(_<3`&9&ajHU7{zG#F}5Kk0Xgs z-b?jNQWku7aoc05uJsW8TpQ%+Sf&R^ElR%Nk>i{No>;O(IYDJ@%k?W%QhX!7LcbxF zgE{ZcR_MPA(RD#9^gpHWNMMEjS_*%|xKh^=sC5hehH<6tDMUvlxq20u!{g*tdTkQ6 z7pAS!qlGM^;SPDL^$t>ahrHE#H&USm@13$nPnKGdT;8!pA0@Rt*@vysr%N4#?YBnH z7Gij>vbFk3QUUw627I%iZ<9H^JJ~w@fYhxTl^pBzGp4FJ^7JdF{MknRM-tA+hK^18 zYazM^-xgi#DaMZX;M<~?lPXG1V_WqQQX#_@w(4U|RdeL)`%J+#8Tv~p?DY;EZsq_p zOSHE`4A^s$x;uKZ-Pb&!5Hqaefl*a_;q?q z$9_G(H!a8BCbx4O&_k1itOH)@2lNM0c-(qGkLV*>$PVfZC09t<2i#%@^~+AxL}`7o zq}VGS)NQ0(OZ*b{I+sVUv1-aa_pdj_I zUYR6b9f$QgB+=esy$K21o8UOCN6O`}y~BF65VdzyZ!LxG9o5@OVS7jQjwJE@?oqv~ z$ia8;(;P?jL@8V^$Ms~XT|vI;aea`~v!L0IPxRqZ=Yj&%PxNs@^v(JSeWDb8$9Y1Z zA~k+MC$AHFn$!%^JgMxUd8JP1*-|;smrwPjB(Ww=>FY>h|9MJ3Y-)w$l>R`-vK+S9 zS^bgJ+5vY!e@ShD+&TR}sa=peryKpmc0Vv6jh)v^Nu3!0S6u79B(YyA&>N8oX}?sU zx0AxX&1d>1u^c-WfV=Y+nE63ORSgF1PZ#urw51G2}_)dRm>XGAy9yvfP*LUDQj@x>+Db?q$enn~| zwEna1H&B!uIq-<%7d^#Pq2o7whpDd|kMu`U6QT7#^zcDqxrqbsJD%$kO+9k_rGIMb zAICqsmf|d_`uwNIO3i`R6=Q{|BM!~DYpT%UW`qnD%guqYTa8qy_n~#0vD?&rM``1! zsYj0YjK)L6a__^~%NXgVRG+fOMXA-$dPT!NRFqr|V-GU=m@0IH7@JIe<)~sjklGBb zS2wDqisd%L*h7txrXD%Mj6 z(d(g~F;NO%5B-hRq`54(?Np!s2HX?{mdjzU2hR3MHoT;~2F(Li5Tf6z4=|vZ`Kit+ z{8YEdXOPU{r@9qBgH7S5tYJnN)q=e~;4|EaBW2MUqmf2mAv!BN(#VvG8w7WJF`i0w zA9TiNq%n33_H!;vgxn}&qmU(aP@&H#W4qM!L6<@MNaFi~(Z(^-J-%qrab>h|MwEoU z{OB{LvTC^OMGND|w9@;htLDO`g-W#BK()7r%~Sia13Q@94xi~^`75PtL1J!M9j*~TrY z6i~YHoLb1T{DigF+=1mzYRW9W|J|OBxcVhW23p;*O1#QOY$K_Wi}f} zNO-KV+Pc}eEOR!v0Dr4-O$xWzR^v7)H_~^={W4pPS3)dg$U~5AGL1H}){sBSTc1qRckqN6Lv~o83mSSPqVDxbJS`F$vEeA6Ir8FNEmq@owX9DLi|; z+xSP8Y}px0vMJblv2{Td3T`e$N*dw@b(SKD*|XayOLDdzOu{3p3Q)4TTu!teE+kv8 zCnZ{MKyua@MRL~Jo>a*2cLlqRSeKG}j9w(M7v5uxHwD)O8`(k(Ti9#tClzzNf5Bd( zfKp1cF5>s%AXxEhLW-@lZT|SqsADi%ptYijv6bZR*>?fwh!@v zlKE2jYCLM}mO3`1zVA`v5J`;osPP#|jP|H;g_O$%4ebaeL#ELzV55e{`yMwQNX7T- z>3hOhFpBDZSjDBrV&W2VsFp_6aSfYkZEUmAfKB4>$T=6l8HMG|Y`sxeIDpmle4)tE>s=8ot*->b%9my+Ka z1@9)Xm${%!Gh^`;JW}KD6>j$qHpOXsddg1Sk2P7B~Tulhdq&ne>$S|$Q z2$<)T54&!}Na59l*Nq*fMwYr^JQAWYd~dKUXU{wx-y2g&;#;Fz#$}OXLsAoLKN$a! z3a$7#{0GBhJ}y^i#Up_q4PR0g+ZFVeao4C!%CwA5y=kPvDTNJ0@2R6-IUnh+oXL{S)$fsCZjM938> z(gg$*RIFgNY>?rE*yVl+_bCM9R&-*;T_w)Yop!3~pt-bcz zy`FteGPJ7izO;5Qr&d;9 zTd!!2%JUoRJr#~uR^M8Om{Vo;o%OTksLZ~ztW{hR`0i+&`MuSNx#xJL^MjS5{iw`- zu*NEm%j_rXOwCc5{bbc?j>_z3>nhDrnf+qjqB$zFU#$ByM`iYl^`PRo%zm+UX+J8n zW7ZzcQ7Ij>{;f5sl#W@4m|M=bI*(c3X^w7n9Vjz;$1EY~I6KJlme63ySN4$P@p z=69=9`Eg7B-I^BWGF`u0KE>fCNv7)$t6GPn^9fqBZZFL)-?`KMZzXY$YA&C-7d2PL+*_KvsPY=qWq+i(4ea;E8fEi(=7MV#_h{vVF)n+N=3ZrP zh2}nG%}X`+ePxX0vaisbtok6@ZC|Ik6RTn@w|%?fM0(Y`ah4stlw%Mht3Hgg?Twn7 z3_p*(OLG#M9To$XZ3Jy6vKT$bkc zR(0;u#SVtK#4cU!$HQD|mqZ&MrlZmo?^msICE0nJqrWE5-F{eeUsk1cNw#-su1$3o zxL25?UYyychkb}S)#`fLuFJ^g22os7*rk_UuDNM7le_e_lP_0(MWr*kq}z9DZe*#y zOMlz5k^Oic%e3Q}Q@gB8JB2wl7G&B(HAiDXmOX|!waXf4pQAY%lLy(gnxiptkiCRC zwdWdSU#~ds9fR%dN|Sd)gY73B;Rf3;X^wV8gKe>i(z#sFj%cu5$eh{{4Y4m&9PfyR z*h@4=JE9@>8s=0fon&uhPVIcJ+3GH**yEX_9noc7hTEyV_kCWvlYj6lxtTqr^fPJd!gbyXV$*hCD&e|xpQjwfLpIQ z`qn_6eU;|s)W(C`s=0Z!okhOAO>-;Ymv7&vIr>KHX!~*I)INNS-DfkUQ>`k;*yYS^ z7G}&Ix+!c7AD<*!jyOP2`Y#(M$mCI!NohISFXD(#(m=1UG=rdu( zyoO8OGox+-xM=1=@%3UZ6t2J0#Qlj1Xr7|EBe^y4Q|!^2GxI9Im4r1fh(F8rhPegt zXWKR5a4X}d+4IBP`uKD0Rhl#NE{H$RzB0@$h@WBK66UUspJ_i7=5CBHv!4xfcf|Yb z*EL7qB$;i$qq!5A`y|Z8ShMY~!rcAQ750ys>jzE0ZCtBbBz>>MZ%2o@`=igdPte@n z+<(N+v6I5woai}r?=V*%U1<-{+=-|CBfiQ$CCtrqVVCJsCef?Fgh4xvRyP@t-{33gn=AKT8u`ad)n!7$F=w4zkWKLOGVy{qso}22f zF_+laHPO6Zb9dDpiC<#x*4)E&KY=@-x$$KmL@%{})Ld!V@9|6Rw%4n=-BIW2y39_{ z+|!7Cg`KRq7wg(|U16WYoJz||yG;3^|HXD)X`ipT8Fg{s>X=hKXC?Z(6z|m$e!=(+ zl9D@{e8P)`=(8C&{xhuqMyD9gQB(`mCcTImmUSRTvP&Sr`CFWYI&zOqok zcIw%(k~Fg9VwP;EH;}s3N~iKwnhI5qXwBD|5@#qy&n>4k-+(lj;xIDQyay+mUS35baq9hw*(U~!s zCH(|Cy#Lt1~#R$$vRU6-uRC#j8r}EViKP{amIMs$N{~@NGGY zDhsL})%dS0D|!xxRWrgWrU?xZkr+bhD7m7kFG#VGHE-fj4=_6IJ7ZCnA7&k8N6|Z2 z@}fhoBuYogof1X2tPy8QoHV7)5Gs^Y{x-|s2b$tbj{OJ5mUGtcELSl)EvOth^QB^m zxqwQ>nImVeTjoXORE26uJMFYq8Y-02a?2RiY}lF8=A>1>j$?T;BhiM)3`?AJ>oeME z;jmKtSM8`Wbk?b|RvJ!&6hwzo5}{3w%Oz%qHA6Zo4GTEbrR=L>QMn^uQ|D1hoW3n- zXWCS6x`8d<%9dODQa?2Wm9{A!W}S#c&6QF-%@%0hF?sfMiK}@gRjY9|AAQI=U$BKE zOsg7<&?e9OE)ehBoOBmV>MQCTeOVNwNQmd0y0EB`$Fz%Wnf3Lakbro&SyH|IHFp?Nha!|E;6{H|yyCPQ5rsEj7}r zQT<--(T_P$t>4s`_8iM!Wqgy-Ia4^-5~`&U8oYimo2(!H&0!-tp)uK+s_!_g8s8L6 zyHqLuT&{FzENZH$<}zn$ThgsbT9Z3%DxH>^Ep;eIhCW3R^C+E8iK1g2ay5e}%gXo9 zCC-#6eU*lmu{h<;X;XA@q=9_@rzD~LHjnYYE^ld}rKDvE{J9RTsSMGxS>CZL;Z==7 zr_DdN=G1i3DwMOP6y2BOb<)mIS?sI&saoMU^;IaRzKTWd))jpkTcF*U6i!-&RXR>| zS}Sm*tz}$)uGv!GY0VjSGGZ~r1H5V?xfHEQ=uF$>z7x`!iLgy2RSpT+lx*41p_D|G zq{0Blz6cl^k^Xm=@&CszL#;sc3SX5rqmroBqI49!o_(Ei<*UxJhz{)?oV3%L3hTty z&TrM)n|89T@0wK~QM+B5ugxaw`PRa!^f+fp=X@8TkGJE#%25I;7s{H#M(!!j-2G3{ zMltmTr?vlnysDR7%Q;e~4K495_!>f;C@NH^g>$$UtJ5cEs#H23Wt&7BLeWm0mMMRM zV^NkB{U%#*#^sDr#Y^=od9P}S_gP=9WKX>38Ige0N;zOpbIzNTp8P%9a~ zIge8Hf7YJ=Z-!Fyi(1G2cj&d8>;I00*1|gHV(0q5<ywfcLJf($YQyg-{dBdwxo%lv<* z-Kr5u&E~E3#2>ils`1S^GaiE+PgvMDLLYB^X#9;dd-2XruC5UNyC2oxVUR zoMY)AmY>RUXY9_WcoF(|u{%c_rMa3{#T0w!sgqMj(XDAJxynU^4%Kf&5}Kz-^RM|T zn+kXPs2r3vwf_8tCAnN0N{47E&R{HM`81#@d_b3|1G>cmpe0rSZLt<8_1O-UKCxruB9aOUN5_kn*C|KlHT75Xbn2n+mIHQ_(bsO40J9qCH!1KA~u> zFC1S-&3&O+uVq;0?D^N@irD$D*jM>gsPe0@C+AVEGzNh-#OW+?>YvFHwcb{=!pW>p zDi03|hn_R;o^J{dO0*4raw>k)M5Qc)UpZ`- z!%jKul*9IH*q$vmNOLcJT@%_YlxN{-DP<$pA;I|NITO^LjMQ|^}Z!>;d z@ViZ1W!wh$PI0Gkw|Ky~2kyQ2ZO88+@wV|O;(QcwK8iRWMVwC{&L_lSV~6<2cv^gh z@5Z$;pG97t74zjkMNjjeD2JCthWWC{GT(vS_woAxzmH-2GyJ~5?+|{6@fV#A!~GJ! zuMz$y#PJj2_*qQCFBZSf;uymHA?8Ub`w2IG9+ZYhb`w$f#mJy+C(jk_We3qg=HoXB zzgYY_i&*fn;A6qZf{&N;WCFq`K{pw03cd_3%y_Xf#RhIjX#>1EpH6pdIxv|a8TE+Om73mi|vefCmr-o#@&p282179 zii3=w1Ea+emLFx5CWVS(jAe{xOaYGQnhktk3mhL4_5G>W%ytVu z?iwZTgM6ylZQ=Umn+>$^sKG|YT^VlX>o4i9y4q4*u<^)8dkj6WA0CjvG#E-NUld|Oz%>X zNO(4*H}N2sRSK8(Q88n2W8&v5i4yd!P)gyZ#G@>UH%{nzZDPE!ZSjqX(nas_OV{vG zdoAhOpSBli=rn44wV=7_;A;L2pcc(cQfJ!Cl$CF55-S#J$~`riieW6;&HPifKwGk=LU$?Ga!GCOIp>w+bh zCarRw8wx!rdOmr4Vo+zi1lf^L2pXi4|-eL9?*BE?E}*LyagzSe}g`lcAYE` zKcy{z#7rmbkp2ne35FJU~>U%80>(Y4LBcgZSzMf{80!wHYL{#f!( z_ubGx*gad)dy16)U%DT34O_ZEOprNCsf~?W`n5Fyc`=d?x+o=|yUtshlpOD}M)ghp z+*QAHK=K~*s-TL+LEjno7~|8)UitRyJ;O zC%F8$w^;H4 z(}$S;o@r~vuh8$bg2E=QkUbV7FR{Q$Cp{RmSoU7=U`(vcUQv}?fKo#1a_6sz2TmUP zKG3_OM~?#c%|rK!sqjU+b)Qq)uZQ2gZADg(I@YgqzYhI6w|TPP)d&gESDbVbe7z@~ z+GDZ%YJ5Aa&i(s}Qz5wsk~;U3L&^7!lSuyWp?+7Ld)3e)yTCo_l-wRPik9^78Y@S< zh!S(JT!VBHy#ZJjtbr!*!$!ZrSg zym#dSu^T#jd+v5Wx3V+nS65=Lb-%sxy`H4=Ae#aAmAw%aZK0KHifZZ+Gi zD(kh!Jzy2}srysjwKmJsRs~Y`xyg5%+_$K{*FHDTWv-d4+H`$H{*rU3=jZORBi8ov zyVtC`qSxmr^J{_kth%Y!QTJo3+PROqDKFBZ`ijzcXw_a3YmFW8crR(WFL@q#;w7*2 zinnO)i?`A*d9&9}Npt;9Nh^V!l4g8qopi~uUfX5PC06e}$P3Cx7G2U=?2(kmJ#zXb zg!3**=-m&oG(_!@TQ2EAnv4$vv$g!~OZq|n(ItDuFqZ6wwXELzWVh9)^xiEqR*&pm zV9{!1w@ z$(A(Z?-q+!FKoA%Yifdd>FQOko&2qgsfZEn)7r9nW1pjP+v;oj6qxs~u8>o$XIJmX z3`^^%qw<4goyAf41|(BmpR699u1ncefk;n&4(lMtu@JMi>;5>(6^>Yb1{wq^3qmWQEQ9R z7R#<{Kf%mG-=rjbAHF@;?iW$UfVEd3g`+{oVn$w;7HdpfyEbjBRk3yfRuRFqo71F0 z>lumOPyNo*}#ZD_OtglcbnXY}-YnNW0zR!C9Qq1PYSC_^EskNsV zzcbxo9p(;e<%limN3EiDe@{;_rme$F1j+97qoQ)%eyrRm*GEO+8XN7ZVcmD>yT!%p zsQs*4*D*udlb03&UtV`s#s+RnQ(bSbLz#=$7hRU&M@jCrc1r3sn|ZaonOET3<(JUe zDt}$~qP1Om)^F+`k8(>fx69P^*Yw{mv(`V_f47*ne&~RBo95zpyJCHX+$xu^&l#{? zUb%jO*ef5WLz#X%=CU1`b#|A_p3iKwX&hK=@4xI| z=2n!?ZE;%#ebaTTpl`Wu74!|)t%APY8Y>T7HY$s7Jmb68QOxg)vuG_HEi%ODoV&7i zO4?0OUw$I%s5sPpan@$L=<>2&o9$_ryRs*6swNmz+Jm9LrZY)yF(w$}@m;wI#+=Iu zOUn|?!AMC%)OPoE3uCO$UA32AgZ1RamzQ9^xM5r&X2we{kFh71mtVd$Ww*HIaw^Gf ztIx=$@pcL0muZxSE3&g)wAw#nzCC*j=vyzp9lo7L-IYBI?eOF5t@a5$4`pw&sSkc` zy>~h0besCiR-4x6J0;C8yTxa)|GD)me0NIPCGF(zqVANmSHd_3ovEBJ;GFlxRD-^( zGSzsEY5J0iH0ZA&NrV3S(P9^U2W6@&W@BfJOBowG4cu25!a(nK^K(>&V8T19zhaF+*XO^j)0S zpzn!LtDZV=kG;2Q#=xUiuT53J{+s3khisZZ@F2c)rkv{r(h5HwDV*Nr z+kr>9JxnlYw~}I9vx)lSZNONAR)clM!v!4&5ylV7h6T*&2%9{p(RgVSa_YG=Zpfg; zkW3gvHFfqN4^Ddq;xxh|hT=C^>=Es-!`~;{iJQeYz}rQP;SmpuRN&*HFK~zG58NdN z0$&hAfiH;>z}G|$@C`8<_^v1h9^g^CTVkN94k2mD!-0Xs;t(^nQ7 z?L?lW*vHCmWRxhBe>0=-;p>H_M^s2kL#3oN)JjT2P*T`=lI+ZvWOI?ESeD9xu(N~h z?1CL=8kC-S23eSIkcCACYZ_!{CEABatTD*WdV_3U#roH>{ub81ne}gH{X1FzUeQ@ge>>~nX;SX)H7R!wn3TJR@uh9# z*QDI-Fe!JtOv>F0CgtuWlXCZ(Nx6H&q};u2QtsZxw}X*ie8U&{H7R$WnY)1FU6lS( z7p4C!7o~rii_%~2>SrT&>|4pcwd@;Y-+3<1or`j}i*;ULotIeWdl$u3=$`LsCuX?c z0tSH|e0iJVy2?#)UF)W}wzw&-o84sXb~jnO(@ka7!J=IBw5Uyvvg-z*s$);FdvxlPR3eSCQ z+ljuO=YScWPl0E7HnwXgrg?4x&hXp~EcZMCtnmB`Sn2rzSnK&681%%pZztw?(tz_l zLxGDtX8@OaCIMG^W&+oEYJlrKi+~$F8-Q1Nt_5D}*#_L=xes`==P}^zo?Y!x%N{Dj zpFNb9d!r~N4@7l1p`Ca*Dh2p>)Ii{ls561Pq9y}hh?)(2DT>nYS`^uNBWfNbZ%6F{ z{chA^&qxJ)jMSTSn(Z2#+(Oo*W6Q1Zn z9X%p3no2J@Iu)sUBRZus*5h3+mPkFHe`8xo5XmOf18YW+$m{O5I+E45;;@$ z8$#|m@+5Y1H6Os(Msib*8BA`OJe~dL$g%8xD1w7X{+&3H{eKmy>?X*)?8eAN>~@r| zv70X6Wp}vj#^F=7{Xz2E!DaXy$c5N(r{1>SoYTm?0%}7peN27hOGUnq_muUHt zHagz6%8i0c>B`mohj1x9+hR#RwFizuME#Ii>A7)A{~7ImsNIo?r1x0j40c7gXSz}R z-(;FeNdTvcfck6++?M9050)n4{cw&W~$Vo!EV8mJs_fbLM3$cd2#{4kEn?edQ2xpX^ny%cNwYwAUoQ|nRPp^{i((cxoLOj;-v_W}gO5U?vhw~{nZ?$Yy>>#9`l&D!l*t$2ZFupNz8`y_|lAn_gg&d~0bkc+3u9gP?J9bos81c4`K z)ZTVotL@*Q+@9L~=uyR&Kc?KJPinoVwBFOoy;-}vo>hF_bIL8>t=x~ayW<1Zo(^bN ze5m+j?T*y$4DBw`?iTIt(Cz{4ijQ=7?T*y$4DBw`?oznauC{1?hjtHW_ap6(hc4XS zleIfiyEC-ANV{9KyFx*=;e&)v6Mj!{Cw5Hio|v9^QeshJMdE_QixXEQu1&l> z@vg)N63wJONtsDGN#`WhC#_8SCTUCeJG$TB{rT=McYmY%*WEqI?UGMSPE8(^JTkc; zc|!7}WN-4Kyw{-^t%3|DGI|l9H00GBl+$r97oEWl72u{^Pi>#ZJ`4M-?6bAcV}0Cx$M$`qujm)k@9Ta)_H(CoO-oBVIc-APd1+N?fwac7 zjcGTe{XOmOwENRuOM5r%!?e%RzDxTxEharSJtO^;^a<%_r_V@Vn|^ired({Hf1G|S z-N=Z^h|lPoF(6||#%UR2GS17Gol%()$e5q8BIAmTYcp=lxIN?EjNKXk$~cg5BqOGO zxBhAUGy9+1e{}x|{ipP=>L2L8vj4jNTl??m|62ba`Wpjc26P{gF~C3IkpV9ccyGXu z13F}$nAtCLc;@)bvomL9)@LrvT%CDC=C;gNGQY??n(59uA*)+fzpTMoW3$f6nw1sE zT9vgf>#D39vhK^;m-Ttp*I7Sjb;?f4?vvd=duVoUc4_v^>^a%R#qsMnxO;T<$?tXj3>t~Ji8R)`qSvcyuULl+9|nbN~tNt6I0FtzBXkVF!L;uoPQQco;iyoEp_&t zlL+}b#`3O~rP(`ALn20CcQ$%ku4Ntqz73tzUSn!HWF%wqG zMYgEGe)W7YNYr4rT8rn~bH&M`5tjc3s~3vX@VDqr7t3IIxyTVKM6S3>)^IZnskWOH_&1MKyN2wc<@YJ^uug&mj>I--rhBt+)W|w7J;XHsZ`{q4-5C62Ib$ z{>PBA-;pvY@mCAw3Sr4hge_O&ne?rqjl|P*dAsN&w~5a39uX(+7hU87B0)Zg=g$v| z?(z{lgMJjJ>yKg7ctWJfCq;&QN(_=a#1Oet43*D{ljRFyB+k@w@I<{pzKmx?uZU8) zM@*6b5>w?H;%vDO>&~xmGvI4+uKY%vhi9PE<+oyn{0{5Q@5OBSgYe5A#rg6lQ6+yC zb@HhAoBTywB!3eN!|d6U{RWXOkQBXNg<3*Spw{wLUy*NQmBVgDX!;Id!skKnwkcDgCz$T53$bo zsacTs?|DiXFX~D9f8Byg&+eX+5UOjhsxUfJ`(yHJkc$+;&M9vKoxW>&Q#zFeWi7fd z<>Ca!9*nBQ2K1$T?e2LD7L?}6eNJ!*p)CB^cMND%kIMJAzJ-v)q>;4_X%tIAzw01T z*1DzL1p4fBlFwv3pD~dB1>}EYv@+7%p?n?AAUi)~%!5SPw+HM6?aa%M$v;3+HGpi2 z6r%sew6mS`&Llhi8HX~e^eCGOmt~E%(CYXPTwl+qQhs|@A>{XDO#~{caKV+<~)r2aM;Qgm2;sCw_b~ zS@?|c5aZX3-!mR#%(cmad)Rph+i4i-cVp~5jN(lnRu1{#VWe{!%SR8RTA0kJa-m{z zT7H!^_c1!lN7+=NEwS%SZvUQyt@pL#TTmm_tEs2M z{#&C)0~>QG4NDl;FkZ=cBjX*p<j)05A*26C0tC1+5L^g8n`NOB5yB3^~h6;c}BD5TO>bb1ld zgBg{iu88x?nn~k`&R{HN%qd*cR*01+Tn0=mCSR4u8O3Dz#PKBQ!Pt-S&*hybG}l+L zs2+5HeU;6xN=WmE5{f0Nlc7?QGEBwygr5 zVh4b#onJbItZkms2#G3lrLTNjhH9yQ_#Cp}oXn4!i|h~Gw!NB9g;Vgevk2oY8rK|8p5tMq@T*DVsE`(Hbe8V+M_@< z-acPT<)CKR!u%8Cg%~-CtQF?tk9&(?-Av$HbrgGHexI%+>EG2OJ}?aIl0F1V?Bq=B zr%e1uPlH@^`xR(lSLKFp46uXv%AlLWUjij|S~h&!@DA(u z-CXwxkpCNKh`z8PamTeIxKbzz*VPcNfTi z0!r-e;vpXZ^oXPGuJHW@D6!j1fIJK65x=?>&^O0TyJI*tKE3vmW#47B2rC5#o;)b|{aU*uYIFrKtX^EZk6wp^P-iWgWDQ*H9 z;!bf6@Luf34eXAm10P0i4Dkr^fj7>Pc0)XdR7*S|o(*~zcFP9tcFzGmkDao_bK)w{ zuOc4?o)gzWvIl5j4;=u$i+mX3BjiJhkAVh`@EU<%V?Qskr@j#M5pfadZ-Mx-4tCWB z_STCb`2~pgag*tiTXHoD`t_$cLaa8)%3NaAtrvy@04+oEu1SElv*bW(?zXI6aW!dY~b0!U=*D zf0xgI-o|(r&J(1#8))F3%=5teak7B#hyV@opnMVZLpWnF#6K7xmal?-9H$LZJOMPs zlk#=YPcc3#--Kir<8$&Y$e(B2jS~q&ya2>^J>`DT|73hcz6bhW@_oqn%7dWa1WNI? z{1Eh8jQixrki5hAuKX18{fzI)&msRe5ML>fhd>_y8sbCwCFsv^_JQ|?fq45F=O2dn z9Eh*k;S25n_a}X(h0AlNI`~+Gun#NH`3`UpnE97oQ+xQJ~3y3ym`~lhnMC&r7 zL`!3AW0(>nHe-9k4S74p4u%bREYJ|?Miel^hye~T+Co0iXb(D@agY%U$zUK(nT?L1 zPXZdaf6*EA$&9BMagYpS9B#xzK7#QyBLVVLfl`b#x`95OF~{f*$tWPkJtGBl9^+^u z6_R`)Mn9t$=rKTydqyA71&n7J{U9l19B1GnnJ8i`Hu^(89%zV(MkeU9jBL3aB-0qrGloKbE>MaY#xT&+8NJ4ENM-`j!i`gb6~^h1_<Vs z8P7P?TnPGH6X$hehPeb-ZY~4*%oV^{<|>4$Fjs?~%~)%$1zl&ZgFI+%03Bd#G%ttb zZ$LvVFgF1&Hm?LOH#Y-U;LoXGW-+e=t}<@`USe(qt~PH1-frH4u-kx!xZAu9^u6Xb z(DyL@!@L9ZL*`w;hs}F{kKpbeO4Ym{_?Y=1@Nx4Y;1lK}z$eYefKQoE0C$>C0iQ8< z0(Y6u0G~CV1wLm!4}9L-4Sd0T5i#xt8sZo8W#F&otH5LC9^h~0>%ia5H-SA}ZvlI` z_5pjl_5=I4-UIe^y${TC9Ry~(J_HVNeGHo?0kQUQeF_}m`W$$w>k#lX*O$Q4U0(xp zT}Pmq2Q);X>pS2y*AI}K%jk9e1j!7>S+1jy&t~+yeucaOC`Fa)H_(-g)viAvsbQ>h zNvsxYfl@TMOwd8b3tVnU<}%KA*^pnzcoA;LOR)fGh=neUNn#Pu5KCNbK`#ZO?p*DG zm$+gfSh|R7z&{qQu@o!f=@O@VT@PMlu@Sv+Z@Do=GbUwpf z9E`L;jI^#^pg#vnaoE)d^dZJ?T>T(9!uX3T9rB|$2iP=I_Oi~IlwXQ zT;Lh*eBhbxF~CB10rZQ2hM4R=6F9|P1e}WdLm0;x%iR+oDPyd3mw>KyPXY$qQ-E`E zm&g$F+~)ur-RA=T=AMqQ7XnfKZZB}Dy9~J8?Sp&;5Pioz8@R^p2d;O|fqVndz`dm^ z(3^nxs*Sq_^k$%edrNhoZ(+R69f0Ik#@pQukpJC17m{s2jAQOb(04H2?YJ`kz24UU#nr{V&Eh-0L8D6Nt5( zdjs$j_vMg$3dCB@y$ST^K)faCz7lxIy%~7eeGTwC_jU079%zUk+&6&!5r`h@-U|8z z>n6~#j2*38An9z~21zHzOlun?S&Rd%J0QJp{bRdIUQ60nYGXfKohb?F7Ax@j2@mNS+6xWUOa_FIvw- z@)FPxFI&5TuUIca@|yKB=vRRfx2azR{Wjw})*eVcvR;SeL&h(xH$fk=-U1%B_5r`L z_5<;k7=cHu_krJ92Z29Y9|C{2J_a7OJ_Y__eGZiNA)sM@2{i4mfiC+9VzKP+K)Zoh zlh{9ij%I9Q{{%@}#`gA6$lC!?=Jv0kV}Y3Q?cYEbFiy7r0DX=vP0ZRrj9|72^xAHq z&$fZpb`-G2jse!%ZGm-mdtkjC3k=vD5q6&48T4ErW)?dRbR*-1c045WftYLT1mI%3 z8*r)J9k|*~0bXjS0@vHUfE(;Sz^m+jz|D3#@LIb+@H#sac)gts+-eU3-e?a2-fIs9 zZnuX4@3V&k@3&6{K46~?e9+DTK4a$sU$gU(l087QXL}6j_kbAd>;m8?_L;y>?IOrO z17c*ei-BL@zB6jjE&+aNPXc~rPXT^yPle_W_Bo)xXFO(~3;H*EI^@3tv1hTpK;bC^ zN{s2#M;tR1v(07hAM=6hCvKEtyLzGngrQS4a_9Pe2REcL7d zPV;Pl@41ZAJ(ojr9uWIn&nD0_fKtr#TnW0$vl&?JxdvG8xegfc+yK1EvlV!k=O*CY zo?FcJVw5y-PLU_wz|qnMj>RqD_Tmf~11yyEmh?E;9yngo+tL$dM_{S!j8lwRG7jeu z)v%B%o;2d|1ovhu3b@5`18=l!;PsXXyw!>U-fq!*(SNtv1Mjrx{ph=`j=+1Z&e+B7 zu;Q?@-4$&DpNn<_Ux>DW|BQ|Tz7!n;d?lLRa(*qkJ@8-A^tSUG(H((%qdSWy#3#{l z;$?AKn+|PW#=XE3fO%~?wfR~6*tRqFsE@ZxvO36j+Gk?7xvPCQ;B)P9Y9asG9%mHt zrS_@7SK8wlx_qsDAK<^*_XEDsJ{`EXeShHF?M>j*?Gu3iZl4W2(4O96{tA*<`3-Ew z%5Py4Z}h=tto#`^W92Wf87q&$W~}@jHgV~tLpspt&>!gPU;?cU^d6w6LpCtF1HB1- zb%!Kt-o=+M{e0RzSx9kGyPR6zXctGbG$bAwZo6z_ovo-0)Etf zyWl)59>1>mCE%BcUoy_HQbiA(My2B1tp`q`df>FJ2Tq}S;QTBdr%vfOFH6VSSSIcg z4Z%s$5Zr?pg4-3ta5^>|r$)nZ8a5o~M#IHO{6>i!oDb#UOe33 zOWDS^0y@yaGTe@FrWxI5jB8I8$;F7Gn(~H9-)W+V2YMbY(-J!aK9lCqnuqb9|M)U`@3c)i7(8 zuijrhyM<3qdCfRqFeDaD+40_bZD+NkM<5@@A6=q_YpU(pN?~j1);kmS5da<*WAw zYwAU*ceZe_6Mf$D;_AxAGqbXA`6$$=$iVu-uiM!SqV<1 zuROP=I#5#?F{2ZoTU_E&i; znJ%bCoa5_j%6x$U3yxD-kb5gj8UtwH;nXR%1T6xoZWM|g?Je_H63f{Pdlq@Cy|byb z(b`%TdXcZHraoNJ0(D!0o)eC!xFJ~E5aeP-?wyr5sk}C6r{_3D8$U_;I`m20Y;@-+IH>n!sS|4yoN~(g9lrhr~ ztUyEXmwCA-kZ8QWY)(UMo( z1pMeojp3df?wn|%v;4CK>*du{dHvN99kdRAnNny_9nr}|^p0o0xvjk7B4=Q6R#l~w zj~HvF81X>G3`YG&LSft}QNu^5APUA;HlXs*(kQdxJSwSBPQ)MrH&FY8#UOeZ+W7^3 z49XFOW@)7EjIwH|_vKWVPw@uJD#GzbN}vQoFvSk#s#>JuI6is4S>A@qMPp3Y?v#2j zhTnP`CLoO@FBgLcH9(FoWb03ra_VOXRA&y4?&0B_`}lFk^3dSjOhcK7N5GTziDG{`iS76fWeJ}E1^sj$S4(rFgF0K=LyTFojayp+iERX65TRyOg>^OgAn zG;8ZhLQl~CESTu6p6v?>xRn)AXVDThPCF$iPBh41qgE&?FVobxFg2b_s2Uv*qbVg? z3ktoBH4QW*XmO|rm3)BKq6LQxEXVDbHN28GNk-3=JL4lcz#b7xV>!t%NPX zq>4gp;Y&5wLKyD#EqqW`G;wp^ZRy!iNi+HJJqyZd+6gwc2*tJ7QtGd6J)&{w1LZA) zaP7Ac7a`}E^N%B^9@uJn(HvR?3ALRT9us|)$n^!>ZCZG8zvYSYPrUMcL9f5Eg+gfs z2FjLMrG*+5LJR##0bl*`J%VM&t?B~Rc*DbiW|b4}mpUHpnb%nDt@4M8M+?JkM)L&| zy>m6GoPl9MPPw<1x>bShN~7y*s=^7N_4@$IU$~zIL^xzvMxsz{=vW}3Q46JART~ja z3YImOs^LkiVAfR>FHXZ8tr(QN1pTqfi(z~4`J$kB=J}X!C-Qd6F@`o1ho@ZHbwMqp z&!cdYM>&Jh@1Lg-O1CDp01m(Wg-*y zfU$mTkLt@R8imdtiUd=7D1_qll*uNQBs3u%XQFT7#nZb^MI_d6t8j>v-H0HZ=K@|q zMm*41cmc%=nF3U3D_)VD@leD&A)S#keT{CHP2y6_q}p2s{0eEy>1{a# zj`Phe#AMJyAN4{z#e$ZjBbEf^HB~D0ErN}z!8Y6LnA}zVR0Ri18ft56Fz1(thcjA- ztNc&&&GrZAs3E_)tcLdRVW03wR$7C8oKs$2kAy{hbsCx#r)VzK-#nO@p|HBBF{i}U9NeK^#?$wg>+ z$45HU{jf!?RMTI}prvzb&~TtIe~nW6dmb8iFe%!esm zb<|KdLAvlig$#LzCNqa9(zVC&s(?34VjNaSkwS8e?&Q&oZN4R-^QYqKGGCLempZNs z*KlZ+igPtA0+4e$p(ylK&kk1b?vQ4pCM^;3k~-Onw4zA*XxP&Ysim+{jge3ZVmi#N ztO@uWZHUbJ>eUevmRC5~@HGVJ=ujm|dC)NpHb2}z6sdew+Yzl+JgXzbpy)<8D5j2X~ZHY5b#yatZWQz z6I--ZY9XPGV^LnN7>8ezgo>&_SxtSVf2J-7q1F(5@Tf%tB3&$i&VsRr#+h)hE6{C* z&SVQv2h~14o(+lVRA4f;@jgD(Q$;+WpqSbPo!b>e@=F^QbZ#z+$gmd~f)FVV7wXx% zwu4g9Q!BbIkA4vrMNK>CP>(6X;RB2ZaBf!Vn~fP!oka4?r>#w-F{jEmpadrn-b(-9 zI3=PW%u)`E(5frEm7^Lb`ex~(%BipSHgd5z8Xxi%9*0V^Md?7wX-MMeWja&gj-p#7 zw`Gx6qlR5E+ZUWp%V~l6RT0e5z;gkzqIzIJ@Zq>9n_kZgLp4g4`2Xf>CMxpI%k|=z zhK?l%@UhKkI_)M!iip}rpaPR8#}?tpuSv(J#556*hT6rBMc-p%dU;E#np6rrHsK_` zT<>~wF&Wk?8jUQFgPwxf&X*I2#9v&kN=28+c=+;>dTxb}J2$Oz(cI}AQ(33v=mVjE zj=XAmC2yWZ)pYC~d~kx{+*VEZ(MeRO!BkDJKqhqZpoeWym?@*7rW~Q`=`@W_k;gRP zJe>uU3|))d18ufs=jb4QGuLK?M4z-HGNj-)Qj}7{wrz- z1V`aWW*%xv6^^4MA_1G_xwQ;XqA3#?a;nwHq9zK?Q41kyqIH(2Rce6N?^Kx0M8~ri z?&i&HvPaVp+@i>CM3+TMtEvj?Pa2YR5+l4G@3_)1sIneCa&d+uUYTy{kDWcwYB=TP z=21rCX>Wab-0x{#hgwOM5;f+Q6*PRZ)jGf zJghaXlt{L8Qku2o=Kh?Fh>#NzYH8FWo41%26&?x8wH>a|aQA2`K`nzh7ZjKV{iilE5zSBXh9xzU2r zCr05JAuXvfOXF$kSbsUrRe7XL?MS8Rf)$1P%IZ?>V43e>Z`1*nTzlZ zw3?cYUg#CMjoxZ8r2+}#9Ps%EXFyRpeMl$P(&$lmXbO5J?1pF@MTZ{FbL*aoow|Cu z$_BBT*TJYtBOKNAsIVFGi*V!@UVH{PH4c`1(V!jiM65<^I07_P4o&B|IpcG33reRV zJ6>8w!Y!k%FI*~ETGfVjN1PGf7o!E#He!oUX($MkG**|Pz^l=a)RKz?6KiUM%AcO> zP{s;~Ktm9`(gI?k&YN{S{KSe26+5qZ7F_Jvf{3%K<^nwFWhX~l3h-3Qtx?4sPT3fo z`b6$6aM6U;mlSn)v5DyUF$wlX{;JX%HdTrpG-Vt;$xjDWoDyt50(jyW3CJqpMSp1T z5g6duh+vz-rE)wiTAdHzL{llWsu3=yRyC*qTlGZ8#3~V`*{VjUnEyn9%fD5BT`~W` zA2oJ7jmSoAK+_sit*Tj53O6HeIR%c|FTk^PwPP3I8aiHlTx2Fkg@)f8xaAi6KE?`dkzW&Ju7Si80uxchY*xLE}egrobf;Ek!CL69~k) zpbIlNJi~5s9^U0E z^v%M3jG9_8Q4Rk!!5|*1l+WefUOpEU5U8ogw1t%uMz^`)m@&lGt5XsvV~gsqYN%3t zWXP$)^EN*!MQwDsyEYY}!88>VG-avUu>cIOB0@CDQ8}UGhp>Nh8R-?Fx=`+69Vbuz zydf%3yXO$C)|t$e)HKwWq1IHB&hvX`S7Q$Mmj%LCqw?t@8Lt_}(7+mEXv?Eg&W)!@ zTC1j4IZ~xJKuAMT&RNs*C+CkVEi4{0y(qt=BxelnY+>^_UC%&&qA|Ikq%>zb8s514 zDftsySEMF``r^!?JoR%FQ=q3YuhR zG-g3uZK*Ejg9Gj3q#asM9LU@s3}I>EHhu2hYmYD_(WfKnj5lypYUQ8me5 zlf=?a1NZ2hK|?D(c$Amc1if@|G(amFUjQd~IPnCX>#eM$)t?xJMSgwMkfl!@Jhq|QWNOFKWo%CVxOQ*6vRmlq37}aO4 zS0zEyY*f=KeqwYKM25#cs>m=yN4fRboZ^aGxyUK2qian1)EY-)0Y!(Rg3HmsRZ(d3 zVQZ1|)9~qK_&Sj)ZZsHLuh2vss$n#IPPdwoRjolr$<)(kSVr|)QsKouK#gp=3c0O? z=w@bA!>LxMZmLOzN}LYGy!0eX6yeU#JS3<}yVxop^;83eteVc=Q@C;bp zwWJh>nK5*G5^b91r!l^2x?GFrRsI?lAW@+}m^wnnaP)_xlS=H8!ja)2L^XzA5#T$Y zq70`{KH|d);rQ}#e;2!&vPN7lq_uP|BBFD7p*Cz&y!F+T({VMBVrPj9UUU@-b0Jjt zPNz82S6}U`q&;#yc1XBJoael4iqXMZF%G|+hH^g=MJn{b3JJ?nPPTHiaFF5#D`$vuPEyWL>h7T;r4|z|Un=-8 z6DIU}LhaR%UA+~n@CG7#CNeYDDWLwXLO?IFqtbd2L6bmWB0i{io-G0bkK1sYOEY?M z4Dg9PWrQvzaE@qm3xam(wS22o<&DKEXH1fGVpxYfBAg1r7F7r)ae-6Miuwc+3qOoI zY%LNNJ(W_@;&yMSm%vKosV+Bob%z3r(|SDT<^IrAqEbrNfXCxuvO|Gc^5q5)_Ka|P z7DAK*)ID1?t@2uZ*_Hxok}|2ug7Fw|)xF?IykU_lCQ3?J6gfOo7SK#Wr*KpWq#Mdw zi071sn6M#Q7@-|&&oXr*xM@i!jx{2g)CpI9VQYFLqIwsHpzQF?Xs%K^_Tbrury{CF znsFjbKeSbAcB~IbmgB%D0?V=YIEH@fmoovEQ# zHLc@_wKh)%bdE*k1GO-({b?m1mT8?PGScJxD}Nr&E-+ybkNqSnr5K|`!7Qq^Q8+3p z$4!UadOQ=MNhPFAT?vD(n({{A6uBrp_81 z8>z!CUJ`~eNznoJXXuMFYYC@t-wII?D`jaqy;6FMrSosJy6N16&x{!-i&IEzqo=lOR+! z$LXWa{s_8BziZaPbZjbff7(r2b_Ti?!fB(1f~7JYrPtRG@ekUbR8f zq7#DRS!1ym7Gu4YXw8jE5+^G`R zvE-62U+g4pCP-4!z&9vW&(<`{@gB-pY{!*Hh#?=EHo{A2veiUD8nocTaI9}Iu!UwK z(xO!zFM`QNm?59>-ar6@y*fAuGwc(Zy?Huv%+0(yBnU5PSv|D6r6`*Ck@?v$>4)M%9$#K91fGl946?nicb_XfcaN=`{dU4VpdU zEV_4#Zlmh~RH)#?!mwe4amItKOVd*4r&+3i>8Xq^QIJ%G)b$-@Mf=xKdC;OlV>glg4p=Uo{TxkiQX^Px3K`o3MRj5JHi%i^rnpJ(c zro$D>bs4UmNL_@=zIhopDb8_pde8Svv8b=C;#MAhe~POx!cpa@v02}7WB;ZS6j12x zE0oeK9?3)65lhX(s9h4RnJY0#`DkCmxuR1iydXFZFA5gmJwc(CkW|II#0|4*sfK+` z8NIpZSpV^=3X4C-3JuR>)xwUlgLQsHJ0Nf~M6De$mNfA|jI^Pqnx9LLz32rcbz_J| zC-B&GMIwTf_W4PoKdbuZb)r!YAY<%^=gWA$>nel<0?mSKrw=AciSr8o+Zt>Dh z-uz1SV48}W4_(8_!!cH56Rf19#Fgn_sdyr6)1}YxQp7W4^&zBW$D4VN?%Aqh{Nln0VB zgC|UU`4EW>hGdH5Tdu4_p>cnZ-+>F;Z6csn;qY(bMKU!H0@npl zdCtZ`=^3aBC}bjZ7m1cZc;%VZLasW?@G;-X}qx%3_qsE8kL z8~Em1xL%vZh&w*|emEXsR3l-Id*Xi*M(d(Os_1!zrVP(MVADi~D zfbJH1%ggEXzU3QyI(dS2jTiX-T<1>>=*?d^)<$k5>ay6t`f#b!n+{l&Hh-m&8xSAU zx1L1G!+%iGx%dxS#npeBlbojSz*6zkc!EWxVW~8M{d#ibvS0=rEp+cC~0II2}dK@zN`MebP-?tkrjQ;GHdM{TuuFdGE!(g!JzL>Sk{|X``gL0B zW!zv{5&4N2L0b7mUF|a~WB>~sNAO63!ijMt#F2<_0-TW#DC4`p>h%)->VkTGR39>p z;j42^1~zrxz|BZMAW%(^CAt}h-Xanq!qH&)oGUb)@a{^_3o2qRx`=xCCG)0>tgsjf zL>r+yGhDXC)ym2woZI68QE@e9ZhBD%6AiX^jwv*3;5bo*#$al*$T}ClKFZbi=vhRQ zFp9FOmXjRj@X{YI&zcB$reqi)@rpreUexw=B zo0h5DJ(1$(VE4X%ECe1mhJuOv|O59~lCNp-GQ|(OI)mB$h9Z%9TQpK)`XQCOaI_fAr z_LS7+^f*(=j8kP-#WTue{=e_L=bd}sdmyRBU8xR5;l6v%J_m}lOeEAF znq`Nr?J6J3h_x2*$hGL(r_MRA>(Mil>Q!;%Tyt?|PSkHE&NB68 z3NpL*3B~NeAPFwxZOff#%%3D8Bp9UEVHr1uYDt1 zh9s^}%O-^D7B|=DqBaLly%coX0-pgN;@Zf;qYAz})OT1JY=%?8L@=T)Jcy+zqRh$S z6|mGEYB$0{Jo|$tYcj{SDw?^YdDARMjf|sn6;)O|MWj~x+=<$&oHIt9;x4N-t1>!p z($m>)+L%(Si&9SJL~?c9ShJHaEVL>gjh>S&oR`)GwP64;i7>`02Gs%lw zsG)LncJxd|Yx8F{m6cL8RhfJ8Iv3(xq;EruGtpEI4Bk{mt`p4?PZ=1!%s=A5PmmNcz3l?94~CVUu((~7KHKP(&Rwd#1NHAc4dMh~_8exnrCZKg(q%gPo~tb#&{ zE9O`No6zS8X;D2$5hlE~$I;S9^!tqe^07FrVP6LT3u zgb}U09#Cvj8{ss6!rrZE8_#JU1g&C}?|YgNp7m436c;t>HN#}yecH6A&!009GM6+z zU`k#_BQAppNC&m>PYADRQI}x#i4uPGNeuw4h93`dd#{X?Tz zH5mWr9>gy@HCdT3JIVyeB**7z;fmspwLsHC&ATuHrMOFNh9GbBS(`J9=3LXcY#|-D zz6y_cpF+f*BYT^@@tt-85Dc?o&oGhY@nN>qOo#Y*LZ@-s%MUGSOkX&0+V*@8YqD@b zl%^oHR{JWTH^$LJ4DA`#j-g-FQT4o-5#XCt+BDU*UIvhKs?2&;+k0`k)L2pMc2>yw zqK1QFsup@>RoQGq{vIf^nKqdfn6BDz;X!0@x5g`lAu~F5`XDTc=*dlTffgy&$%*=E z*QoN?@W8>rN5a72BfjL+?y@zfc7JSm=-9yU=%BccOot8+-Pd>cL|tls->6Qnq>e`p z3>;(rz@82d9q6-%zR}U)6I#uBNJ~=fesoZ6jP@Nl=8uQ9-1Ttw=KkSj|>bS?K?8yPX`Y7jg0v1k%7_shqB@a2elO2n;txx-K9b@QjQOp zjMA*>sce^HcFXW!kKMN4=CCT!yeY|b8} zr*SisTqsJ3oO__hX!|SkNrOFAu(1j4#sa zjl+|tDvL6~Ml{35xW-SpM|HGN!mXRI7+t9(h!!fK_VyCd|kkujrsF{F*rjK_akroR5q;2ZmV@UmwbT zZmnd@;LQP72bkGR)}J^k1n2?R5g(s2BgQ`=PjDNX($j~$E^B7k@)UV+LU4|x??{JnQNUYLRiS-&=rzm z8`y>xu$c$D8c~}x@cSvOalai;SSG&VC@&&aWSu{0$Yy!!(`r*9#jJHz8n_A3Yrm~k zSAZy2ysl{0={2h^yl-B4Aq(QVW)h07@zrG58hvUyd?J%Yl1-Y6$dKc+-06G^9~+zc zPKj}JhQ}st>v7{7(Z<7LlOFSfxLicIxbR87NR3V2z!?M6ld_&Bj%H_5=&*xqMKc0q z&6kv{ZA$c-wPM;1ETvpAMeBZqg z(BSCcLsaS&$k-gYf9P<(KYA~;i0HoKhdjl?Sx05?=F$eVz(|K?E6!E-A}fCUn9SjU z6Gw*nGvFK*gGUdYNC0Q(>CYt%9=(4+{TO!_+RZ_;De6al9 zM$b|sO%9#%_i=%Wy^QKMs{pYt+ev4C#^V<>yO=ikX_nAew{XG>#+BGb9@&yi3_DuK zkD|>c|1=LkP|#d`<->!Ik%P>*aRV`~sX)M}wF5F&*~H9#L>Vr*a79Ph;1O7cYm17)cvH0oK*GGxLC8Ylzz)pdT(bNr4r=MlsDWVGre zsR>&qrzNjCN((bJLyJ}-r3Z5l)1wYX)S8pp5JVirqvV7s^LthQqQ>K9^#nxYuGSn* z7P@(|?#v$?oRe6ZSExwZMl0dyXqLl|Ia< zzuAtB_~<@?Vg{O#QDi~erU)5gbLM;vorBCv1JXTRz4R#v;8yUL8B#N5<9%JWm~7p| zu4N0o{dgCBxBfW0_Sq6n)!75U3n2a8Eqv(GBKdF7E1Rzw@nm!@G4 z-Y5iRnPVZE&J9(JR%j9>8$L29Oy*-@B6fkW*@B1*+f7RMNgSoyO-lDkJM}>WHm@+fTeR7O z&eR&2nzcDs<(P=dULBI0WWQIg!;%3_5(%xTsD;?{JLeYRIl`S5cx6fDyr>T{(st_w z<9UL2(HUpd%sJI6#u2NHkt?Q5Wo8Yy+^xf}^M|B!3P66HO0lE}w63juyLmYB_bP?# z@7H=xwvMWKaN!&L#Qel19n^UX$9V^}zg=Mu5|* z9Z29dg-9!AC6BZk$Uej(TK^%{_dEX%|(4`!E7$-gJrbK7mU5ay7$K%&k%g2pP| zMB;Mxi%%vNSw)juOfz7i9={$$hI&N?%Rwf51?N-Sr4i6ly zJr5nT$I;pB{8+6+w{@Ltzsl)sDf67(_9xdCS}mfDL+8>`A+3_r2BSso$#_V|)B&_j z3NOfZTAB_6BRZmH;KYIZ`-a`fGfZZ|>6$iQ(8qV=y0`&vmSLnd&hNAjsj&K5GkDo! zt)wu?$$I*kLs8GiFt--+sJ;3Wc|5Y0eCezxsHXA;wR2Dh_r+H={b6pSTrM3HlkBg$ z!%r@fdDxbe#(B@o6K$vx(KaT%e6f5ooGzBd={Rb|OUk|0p*Fcbn`XF#e6*e!5EnrV zIc)$gAz%LVm}c1%TK$xs;-N;DP$C^x^R6f%calxBMsoN=zFllAE)8#&g0pvluZB~5 zWHn4HK9M8+^su{zC!H^43q!M$1|YXA+NxD7oHvk5$@2Jokws*)Jh>E9z08@ocH`)A zeJE;l;1Oh+A6$7=hIwlRqA0!fb)>wc|`4UW%(y01Gi!o0s6N zX@Izxx$q`ijObQ}PC+4eTp(u;xmFL#vXg%EWwB(;B$TX_+{(E6#Hc?wGnqMbcOc>e z)o6cz-!qbI2-K9LKCvErb9ZB6agH{oj_3#gH#=iWZL#MeouMsRkIR?MCLUUvoZw^t z`_+nneOzn?vtsC!9mJK)9*^@}D97l$zL~*UZ)!#O8*#rjdXz=4I*DRmXlygqvZL_M z{n&2cR6PB}nQYynZspe%24g`kQN*tHbk?I2gBi_I8z{ykH?T!=TAP%blTkeh)yOB; zLIK)(3W=Jo0A7t;8mPnUfA>peXV}!bbfQl3lS;AG9BvmC9^CGc?@@~^WY)J^*aw(O zJ)vM(@VnzjO_@9Y4Lu;E!uWSUM-k3dCKSiaXy(Y+!c%(6&GITxi$1pPqGm3zyhMK9 zQN_vz`>_p11ngvO`IywBnWMfL&%yz6k?cEL_K?ZicpT_%?Sh-pnF}%xvSYGqr)t1S zBFza=tyZ~a6EJnpO%{OGA`reF)E;G!&d!k6-FIJy75bN4{>WT>lI%0VW%2=}*bu`& z3pjodiTx1HQb!fI)!@ckvYqu0VBx}wbFD7-(G<&=VePVn_u!1S32AXOzGfshITmBj zdQQK}zOOBvB^;#91^Fa}FKm;NttMN*R@REMAoxW=!RCd61^pW#yOpfoMk<>1^fExCn@$QH;TR`PST$HSPKoeGPJCi=;a8YnG7QaDxz z+~8P+$)F(D>{*kL+Swt*%>=DH3=(6i(k9o!jC|=ZQ#mWC;|baE)rQ03A)e|J$AV^b zEz>z3i0Mc($|1-HmW(0tCx)q6Xv~`P#_iei@j{}3gF4Iwh-8y(9uA zC*O}`Qa9ypjah`pk8IM3H5x(nTsC@AIFrPA1+(#vRvp=wEUZyKS7^aoJQa`USrEP0 zkv&>6sP?ioS+xzDnaC7-E1Q9xoz&i!0?<0XR3kQ~kDeG+OfNVdPDx!_2}hJg-cCwU z9aO(PJ$sNpawfz#K?erZa@Yv-v=CTwl{qeku6=gB*?Km(!0x6%gJcei=DSgoCVdw1 zGtIf=D1q$c0*_m;^*4y#*~9F6W<$2GH4;j;j@Lq>eR1eDkr!98DnF;rMT)-b||t&MP`>l=(n}e2TTS{uMcEHr&EmWAU{aUuqCyec2jy@mMlOM{;`4_ zSXLlGX~U9DawXU-HD#*xK@_QDSG>+zpBHkqE1Ef$e|GU2vNX6z0?1e7%J7f!&HQm5UTZP0qqRgb6^-NL0+K#K)Ao&-x7(Y8(KkKGX^JxWm zwv)(fw9->)`wtQp`Ds61HA{K4)X2gUcIRLGJEaKAeF_`RDncC;8JC)VN&!VPBy`!! z-99ciD>jw|!fSF=!rLZYFr66Y1(}QUB3Fdaq&Rh6@;;0U?^;Xj`XsJqhUyiGaJxlP zqTtC3BQ|AmCbu?G7=tm$M@v5IU^2=n)rLrt#+C|Lx@b>GuGn&eib4|{ZRyC+QC~LTt3Zp!eO992rifc?0G;uXf3|HZ6J#0{ zH+myx`zs6M^OLq5yryw#AK}TY_{JA#(luW)dp4%8jnVTprJ~N{OwRa9#_ohZ z1~~szDy3>3(&tGPY{;b@9-($=!I@kobl>tnqU!i zTGCv{Uh6n6=__dq2{zk=nl(bXj5f1c2;gKXQGD6QxoWdlS(mLDyg__*#qMVovlnvZ zjC*BnN=r)aCtf$7-{z4ZFn#U`r$Hy})#y*~)|@42b#oOZ8+2z|(Q&jEBvMorzZ4mBVkNF zxmvGD=fMSVp|vD@{SE9UlG5pU(gC*CzSafCAd6M$XqXrkwO-|WN;b$M^*vwEV^+be zcYO<@(1#4ZTA%C#$Ek~<|32X5jKBppV0p{7a6+wtd`t0Ij_J5G6dBz+O{HW}$#MCE z^JbccNFiy6<+k2(GY5<|`HG;%VjLU6q#mSW2{E#rA~GCSm+b|LiN|Vb36%Jb(c%kS zidM)%_|GcyvznMuWJ!Z(c*Et5d;^CJ?_{``Pk@oW!w`cyJNWLgU3 z6e4^UT9C5RaYp!3*->{&Kml6J)zVEJ`T=-WBC}T_rqVFw-WrJufe;o*+;^Kg9CfTm z>9R@B+Se^1MtED)Z6}Ev6%CDKB3a*I9a}_F5BA%O_-GGD#y%ysiW7+D)ebK3gQ2PA zEsA&8M{SA{6wKK1jEc^CALElwN1m5Aq;wNV&absJEkUcr54g3+AUABV)8QPfM$LpB zw>qaVWYY_N7_b~cHneCBihX%4i-3;K-tT)5`?S(aM{rdt*)xP8(m%-2hzZyFz@6`C z7p@&`Xvfo2_;$ zqESd&iqPrHg|f9&2lXlADWCRek}`5&aL|A~TwDE>?T-Lw2V(HWXFQJS)1o?uTt|jt zeLbuIqs?9!z2&eiI;+eR%+Zh!&d7c@=U*Yp>`s9{HyV}kw*7Dh3q6cnxYr088RYJ> z4W>2qXe=FdrB$Fp7OR|JbYZB%tO+m@k4{*9TDD;?4JIW9<;L;BlF`}2vu91@+qYQk z>k>xfqdL#b0@ez;qTrnJQ*4qow!Y2HLzVVkOv)x$z4AL-i>(DvQcSf)R2*KY3>;nP zX?BRAQgn2oBD`bghECbpg{Ps1`X_5u()WxPmCqT^Gdwf2*Pc?kyUBi5iP%MQGg_rK^31qO6)Q{-_f3NwBX;_3 zH>40p;FtME=LJ4ixFE+6X^9rF*KkVY4v|u3E#*v=M9tK8pSHt9R3GBZS8Sm?hydp@ z$b`qpR7EFL3=XAQwD*%Q2D0ifKkx=j6kCZNf@Rl{_F5?mUrHi2+-Hc@Oi=&qxXl}K zKHacQ6pv(!T1_NrOwY(fUhH3-NIC5AC>}Y<%>pR&D_j11-?`B-kG;})gcF}0GHq@L zzx7$P+g2WX2cmv4lrkQ|2WGSc{p2Zqi;xGO9LlG-<}vMPvd^{5ysagZ4Cm|Des2b* z-@CAwkdBy-S`&~RePy3?5_0%7m(-ja zdn#vBPgIae6vjc4KX-%(DVEEHC}l*0I1WeCxklM6X=X7sAX$`wiZ^Em9X8?HZhkkB@Wgm z7hQw04}s;piI*hbyv>?TA2oI@!N;-oXyOdWwVPb1UOKrbGuvm`>>CzQn*b1s$&1S+ zls}-3^_@I9UwMXwSre9KWKP~kwGUCGsD1msZycGcu#>)|HoN4z*hZGzic&3(u_(US z2%b5Zk-Eh6yAk}NR;?9duLW)Ron_Ai2&qw+WYK~o-xqd|%xMm!;`v#j@5rshPXPjUQM z90xoT%gX0O3Oe5fjoWDmE7XjOeY?&Q{8>QGM{(yV zHIE{JTSOij(DS)~k3U2-rZX$dC%HH|o~(NSFvc~a zRa>==`p~hZ38B6am4U%TDN<_>LuVCQuPGV{4tY0=?oVJDXc#>Hs|Mmrt3N(iMM7k1 zJr9a$724Fo6jLh>5h=EG(99GS$ZZ!%iy>)Wx<)$Br9!P#qHHHZ1zoZUi}c1aFL*H7 z?{&b7O9u_V?&P1&db~*O=aQ^;MHWTpdDD?nO!M*6E)$6YPOwTs=W$yMg00dJ369%6x9$(uU+;5Wd!M~+@7}$4+<9`> zzK}5mG6Z`fdptNYRG~E*`vnW9*=QKy55-+H92$3%^qDL5GTVq$aQg=m9iyblo6G!>}7}I zX+`e}A_qms+iY^J@Xkk6R)YA}n4R$yA?Bh5A{pK$c|aD(FUboLtD6DpLeyd0(Q@5^ zA}O$k=|MLQgo52pQ)XS$lE?ohYU}<~0_rnh-3ci&W)?xn=8#($~ZbTwbehnBuTwMkog9iqVjtqpOL!-J2{CE37Eo_<5>X#|~{-WKV4!wGw(?6|c2@|@` zD}_AMx}VVfVlX1S!_Ww!K#UN$d}L26!skll}Gc-S$_K8 z8~Rm4U#{0-PqSS28T?N*%m0Z}Rwqz{uQ|0L-$gy>)!&k!0|z>&)qYPZSHebkI^Qzo zN5WIe0fgXiCfudmM|Ib$v@w0P5v)^R#O*1i(CVUaNzE6mgAV-oz(qg7!MC9 zkG`Fu_8H(A33qhX(Ya&~ZJ%ijKM7a8`roEW|x5&$~Qi_3ek2 zupLrSK)zN#0>vSbNNIZ_guygu;4R zxfr8PsGnMwC}{H}C(fNMGv>^>#6YtLd#yOw<*2K*%EQ!nO731H!Cp z_^@ts*dUu>L)aX``fFuB>=n*i+LYFoQa%w{)_p?aFX(!+UH9AdR=eJA*E{Sgp|~D# z3P!?_enG(pmJc zu3kZ6QQ{u(4fL3r zp>mp?7031(9_X*Dfg=VQZ=)RoHg@SxQ5gXa4!y&m0sv_k9q&Mrng(FTE* z8bO9qTb2-7BTbOVm?1oqVu&MG>`!ci@%4Vi*4@&WG^nH10qjE7XPO}~VT@shL!uJ- zgkXd^92#0mwB_7gOq*5?Xf2WsVZC!XHl&hMRzq_*<5)mi z;6JwGV^|M;xMGKDL*2U430E_^XB(7ixZ35enRw(=%PZVVXY-2s)R|IWRnu3i5~eQQ@zr?XCMDRejF+UL2TUD`Tr zBj9pB@1?{V1XcBAWPpnVn1o?M`!bYn>1ZOXiA{ufK4$NVYTC4ookq6D%E$?X^pPCU+EnOxuE5Y;MNjYnVoy| z&qsvug2Q(U3Vf<@<${}N{d6tYe&s=%@3HKCo#CV53t zuO7yhD^kj!9E)(Mnf2iQoeTKnl$h)bT(a4ux zqm_G_)fr86u=HiNOvoUd!NX)m7qJ8+2*ah;!a8s-uk@I*Vxyo@^ij!L=a8H3 zJKUs<(5y$%ARDY)qK!V#N!PesTMLNmRO+DBiG)IjIPp4Ys8~lV1Ds+|jz~N>w=!LG zEQISqSo+{$2co3AlH!kuRI6=|>+gjA?$Y0$5FWcUDA4-}cT?7Pv^tuJetY=F2^d>` zf*y{%`?{laS+mY{JH$fa%3-xZz-CT=PGn&+5+ztjWQ6xIXXBRFrXLsk*4OZH<&54! zgrm`wQgr#Fz2Sy%Ok?U)w_xm!4Ki?N`yn&sijD9VVTVA)BCO*hlq&FDYz^Kp&BoZ@Gw3#b0IBQFTfTx(bEQ*7jR zjRc`+{)m@Yn6_z*>%I4yc)m`EGF+*bw|k)6pNYr8y}<9*ty_a&rxR+UMk*mO({lnP<3GzgdK@8ebnm>3{$by7cqYG z7DP0bAw-A*kqLPc*w`H&RP`16J1$hw_``ZLFC9H-41%Iro7iA{fJwrH$)z|EBJ1JY zTF|6HjaCoh(jh@yCW597RG1ri*lNk3M2va+1RfwpH-^>noeXfaqGB$F3I@tUi9-W| znPb4d2v_gckodn{@@J38y+Y))RR8I)Aq|Q_llq8hWv*yDZ@WXu7c<%NWuhDaV0}|a zAktx{puF!8+p}^0D2OG098$Dk@|G=DbdQ@rBZ3!w7@@x}>*$i82Duor=n-v7v^tRp zGU3{OK~ZZE#yj^|8JK8mr?wm$$uvqtK`r{b0$86>?HEjY-Zd!vC2dVi!=r3)j&nyO zTID`+X}!>fWFuI#ORR6GRvTWYwS8?KqX}kvSN*MvBb5lpn9R3}A=Pcsy@3E6Dj^?@ z_0EEf2w=Shy*6@1+11~?6flnpm-IPrgvXI`4G~RQ0Ex5_bF2+Oy>vtSL9tjZHcj*4 zLGcE*3-S;?sl)Q4Ko3KMmST9>k(Od_#Be;C=`*WQ&-iQvt-3u$C|L&m)rmu*_iW>O zD=nf6p)IJh=o+}*S`w__%W)&Rdvri4<0|EE5RD#R0;(u1;Gul~qRr-FCib7-UQs_* zziRFt&18PBtTane6cAB1FKyVEwlAe=N5+hL0pELcIF1_vomLjD9w4swDe|!%!EkQC zIM96vRt|Vv28+^HEzBFtZoNf*^8Sn{hxS<8sOSB1mmXj##dVQpU^Pk&wLEe}En~ZR zZ5L`g@AH$pk+W|IJB3%GQq1RhA89{y_WHzc_YoWS*p}Mg3^nWu|43Iw@$VVXs9b1b zxY+mnSgWp&qC667$I(c1s62|@!ePajZj5s#OeKyB+gS<_S59D~=BX(>d@+cf(qoS! zmq*Hu-e9U9sV+FT=i78iA02DG{p7`3B^C-zq$qf5S>*@ceR*sl#5Rm! z)}x(-6fQ2R1>Md|(=p0Aam5+M4epE1-I5lO=|kLo$1?69Y{dBGHYo{M>o5dx%_dm^p@n)+GC8|PWzDNHt~?tbIMxc(|q zJ95$kbx047lO#_>J-z4R_*=V`aC@JPY+P32+71e-U#0^MLk*bIYW2oZ!91m0K%Tb+ z(K6UdzEB4rKkP$?JB^{gTwB%GzaTlt{Itzce-enHK5W8W`eQUb`h>J1wHb`qXOwR_ zyThoA`AfGAoeLieq$ei=Il9Am9=M=Yp3-a`&(QU_-T=i8^`07aEQYLtioInv&+X|- zX!#_TDSBZ%TbBW?re!Gf2^t$#S;ml@(7X3jSbY$P8YSz3Xch}S(pa=uF5X&Le)qZ5A0G+Y^Hch3aCw zUdbbl7E~@ShG_=(gj~Jp_@jJHDmoh;5?a-cEhsi(tXphJsZ2^6i&` zKIa)ICyyc@QEk*#dX&sgA86ori@bN+MnX-Wx`PBYn9tFu8y=G)c9;}yKhXHTd3fE87C0p@QjEuLiNon!mlme`q{lN7gJ5jF)~<%_ z_C_a zeZKRw)=;~V7*+5vJo0>qdM>uNPi2!!n2uqzftk0DaJ2}yu&X@nbV?C^Atig1s{?dEL-=HyCWX6jVezR#=G={n4 zAFr2(j?abx-(H^&f`lYY*Nh(!6Xbm$(ve`yo%lFm?bU0dj~AHsU{)gn$0^BK#`S1R zUo(smVsw8b!rh$i49aUS@Xm~%7@&p1khmE3WF%MP8Wi+EKJ1ncvLVE=A7hZM87&n@KHTyi%2a>z;uSZGQ83YYLMEwFGL zpbK+e1NgTCL-H2lSVpQ&@``{@oFvjxorOl~>l0iPn(NMc9v`SITWZEvK%6E%x_DsHd=^fo7U{ow3%9_-Lm@i5Q$ZDy~UiqTd*fA5%VG z@`Z5-B~a6)*T6L6L#l%)i$^PA?q7znP>49d_3K}dGJR^OxThtp!oQFcJ(yXuzJH@x z*WB}{bENlNdWQ^!+vl4gEk@gdt(9;AbW~IBqw0^>5BX%0@z$b8#FCHvpzJbLR!?Fr zv*0a>HlRSs5Dcqtp;_EI217BU(k!BfcB!krj&Nh6^WLoIjuT+ZyTJu_en+!%^>NEE zaH;J@VbnBCq21R_f)_jM;cEtw^<)n@!4S?s^IV0#H8msag)B;`d0k=%Q#AP?Q$75s zjbh**#TTwwv&Iqc!`kb0V9fkzHLt1A&l~&1#`>g(up0$o^HS=Ot%2~_LBcW6Y?`TE zvsB$8Dld=l@K!H?!E6`ku&6j0l2G(oWePpBnH=Y)#mf8&xYVl+R#d-9j1l^7PU|qQsv6N1C8Q%u`emnvV-}r)IF-`p!KFtxF_@(r{TiZW-J*#KG3Ar7}Tfh_(4|b0$;|`G7oOqts4at_F)ZlK9~?~lSbFH z-s+&57?qDUlUsSw{9j8yCTqkgqj8j*1p)JJNqsl|^n=5CJ-1xgTWZEbea7c`e>~4q zK9lStknd8AC*l>=#^<6(NW6Et$hA`a?RqNs`!&|N&|LMGnsLheAG4y|TWgFwlIg;w zSxlrDw?u=pYaO0-$FpAJT1}fPlG#xwg=?I%<93(qZSa{tfetL1sE7e~XVLjQ?94F-5I8g@~mge!a-RwVPg&oZ9gHMI!0Bh&+`fnPaW1grMGgQO44S~ zfb0%V;)DQK^RJJFRswZ<_sVSSu13%4}Ke0<+DW?{?7FBGy!_)b%Ed8;Kl7Vd6i zC9vFB8`?J}nhDnwg>$Miv}r$Y^?ySO=cl}V4@SL-l2=N2jr9jCxbDw~=9m+8BJ#OZ zq`yy> zmyWS|$JJB6?tKv}JaO3gS>I|Fx=6*QW6$%&5Cg@))u6(oo+F|o!c@2y%#*tp5N$-z zmRv$;4(qHDB9Msqjt7ezF__ZXR`sp0%-m~cwks~mjjQmYBz5NxMUFKcQ61kB6r#UA zm$f!*aT^cYae#ABwdLv7={45sZTbq1v<2A*Ip(o#8Fc|J-v(LlfHC4wfAj~!>1HFI zA2sJ`UvU`itYOt~v6|~VipMV2PSO(Zt`*s9x4Z{<daqEi{{)?qm|Gmmj`C)PkfQ739OBK{%4oEF7Ts>+wP1m#{TY z`8DmgF(=!uIHFR(;T#dRj%L!EwreG>9L?$Z?Cnz>$l{N#rI@p|1^dDgiWP&82sPIEPE* zd>8(7NRhdC${Jw_H?-mjCGS@|UT7o`fppM!ba z5DTt9|3S9c+_-Y<-5v9&zmb|EfzG31^#j__`kXeaW08h74o!GoPn>&&eD!~!JKn|L za9zAx>o@eR_2yF3!yfMuc2c9Y&}3cZ#*{x?F(})8NGG-4rVWVNywu$%FNBoCq7F`; z3G4f1McLgL)?Qp17j0<9(d%=0g8T=L5sh$MVH>vzd2G(H8?Cxzvq@7G)^HT#ruEe1 zE;s%i+lL}G#hHJN+7(b%PLpkBg*mi|i5|8lDu5=lRlHl#W-;tf6bL9oH9U5noMQhYg?DnlJM{umza&w1z)P!%-ShBTD!#u5ihAtbT9!!e$&crUk;nR zQE2!%apm(G<>$nkk~iAg%Cgw7(bHWP2_p+1qvv`aivjcQ}4Q|F;4}dO%V?}+?C#i zHm!eaJEE5JI1O#GmfMc0G}_+RI3mMj!EP<4WOlD2C~nO!7%iE#eVyOKZ%KZ^rBEAd zH$$6ZV4L&SMQD3g6oefpT(mu+`|0d{Oi>!2K)^?NN95<)hXl1KA^OAKiqs(v*J_6ngz+FbDk>BXvN)i1Yy|lnkXbLk11MFyQL=?AB@h6$vgO$?T{_qiFckA z9yD4T)2Szs3NZqSp z3)kKyc#2e=S}o8=CtFo-4&m&Opzt++K0cA_dTlf7&FXQqLVTPe20x`Y3&Jp|P@U^P z#xdHE^v-K8ZsjEQ5gM%3`_&G75w&y5@hPjHmY{5~<~F8tFiY+~r4%+kgsT&D1svBR zwx5ztFVZftW+F<|a+g{+Yq16$X-&ssYrd58lSbvk`Bdj${I%P z5nhK2_&Z|#3+tXkkH~J7Eqi>RVe}g<_E-maJ8dJGck|-7MjjJCjn%Id-JSC-|B>$N zDbA<8F5FJyVzqD$TLGe0O%{L_-d}sSw9y*xuH#+At?Qm5WZ|0F%BZk9oWoz}uE%EB zoS&@-hsYg|+&XNu5N!s$$9OQ?F|{9OIPku(oRQeIeQdYBmwLh{o6W5--mE}i9vzE~ z9yo+?B;iuCX7@B3lf38VSc^Rh4-z~kUR6B&2x|rj96bb=q}UF=+CJ{>h?CN8!CHjM zR*(Z>vUjnD2%2cTp8#)!UBH&xp4b>HM8eu&6HD4gR2*UCOZv_R_H>eo$Q9XG4@W=i zKtbv>iycP|6Q#Gq(r6uF^M_kvz5cuQ^u51tRtAd^xeadsZIo-V=4NI3mCvOcbJ&gB zp{-2y*CLTZoDf|-;+uWJ1vSecrHLF6LP$Tl3O?kKsC_L|G;oQ@zzk`90)qx2WfMi$ zQFjyrz%{5RXJ(&H3m@l%O~UZFNjM~!hZDLVRSF^*QjLWWzOAGKbhe8O50|rvsdR=Fvu9pe%e+>_GVn3 zmcXp3`72n`ldFFpA_Nsqpp2$$ww2cspJj071)X) zU4aJ|k*eqIJj1h%bJTjf9@)jT-TV1)ReoTc{bH@^^GMt&P}~I&#|YasvO3mUy{5-E zEtXV#LY@?CyQqG#FA4n@Zfs0zw!+S5FQNbmpGXs)PzBb=rPZUJZG^6})<2r=*KAcM zFV`PscHvTL<7yX3P~qu(Z)=C*d_>d_%h%^1+Tu|puVQUj zBlOM6>4=}T%em5VO9>g`8kds1A#xt+A&+16uG?+n+>!O&^;S!`v6=X7rs^a+klOWL*85t~dgVZ% z&`GPOLU_zMy0MSV@EzBIHn;EKeHZ^whOl9qD}ZG!i%%o414AP}LVcnr-_^<3+n()}w ztOhp)5ma^UbstuHaq*84zHO3E#u_f8)1Qx+o2Tm0l|Y4A=@_Ip;qXBA z)L0t!Xl7=l6RdpFN27O$am}|7m5x(Nv2NH32AftHpHOvCrFuS!0z>ddQyC29>s3FE z0^Kudz}2n`!||AEcNM`&7@_+kqJgC1WWsKAc*qmR-ivA~`WOt1NnaNjs4Ja+j#Y7g6 z8HD0GnMe&NggxA<(x6^V+&Rvi!6=zlHI3IS>g|#3sBc{ZH%YTEc_hRkfQ2gCJzMnI z@CCelp4nU{)O$*Z#$2@U1OyfFlo9V3+q@H#_bNO&cQzG7&%CNp5U$^SG zrCI;tm?dVTof=)_7`(_1s?RofUBE*9L_N$1Uk_*yfQXiU)1FwkBGP=sLxL6BuVdgN z&3ad~Ns2uvGJER3MZI#WwOC61?sPRBPQMqSgiuZAH?h7n1wTftPt2V|b*=){-olW0 zKP{I^bQqO)Bi|wgisJ7=m}p{=>C7_RUWwnMISn#u;%MXy_pMNhS*qqMbb~gr=q#NAU&tszrj*Z3|H~)n@gC%hr$D1pvD`ruUrU0RnN|dTlrJ#bY4M%?wq+r#KQ6U8s6(bg_1Av3 z=yENHCl7zXHLlh36j879!_&h89!mmKZbabIL5x!LJ$eJqS!>NvGov`Kvp~v_WK)va z;!5-AU4|mVXbYrarsC_~!fbC}9_DvX#s3j#^ZhP&4G+|d*<@URwxSA-;mM??3xZC^ zgD{9utk(}gveXNuEFe;BCzzw{gHy=cWNE}`Ccs1WpXPmkXd+rkPCblkbhMz(`U#z) zhJpI>xpDA{9fBfb<4HH*-f4})gGE%lTgW2Q=d4F-+a z@@Zh)?DE<~6r+@%Hqy%Z2Vy9p@ts@Rcn>&DX=isNSVXVK*|R-Tw>Hz22ZUo^>P>wK z;u>_y>y zA@_quX_!CZ#*5cIpk5Im4AtMg7!5{xi4^5@gPW61?sta}>Q0WXhdT}!B7K}L<-Ax& z;YAM$tu4j!B|c_&*OqR@w73yg%QWf^Y`9CxBz|C3Z@c$uNLg%qmwxYH=~QOmM`1>v zu{f=rCJqs}DH0SUN6ZkV6hjR%iq<`#h4*3I5xXAZx+8C%Ic`0`;lz*$C_7!K=!AKj zkx<9g7SQ4iAjB9SB7Tr?Ts*@f8Hfy_DOj{@l<zkDH9m zOiq&ko$jKCYyB5YGU1E6SO#tqGfL1oW}v&B(HTglt{a0sai0QOVJF|=DVmR-lU5yj zPPL)abA}y7t0KR+=7wwmjcBR6Xp$*q^9_R1-3d){UmMT#>yzQuCnxo=uJ`FW(6Bg| zwM$-ZRIp+f`Ch!3_8-74yAZ23+tk&j(gT}!=r{#+m zQ=1nqy9Nx^Uma1Ss8NW;ZIHNPAc}ztd+9Fb0m;qCs5mC{j2%PJgh7nP6b9vh2qi|c z8sZk!FF=hKk3Idz2J0m-9pU-OzkyeQq> zct{;U;rk3tpE^Jn;u&D>Ao*^Ca9weoENdHzxx*9w$zTRxT1FAV^OWj$Gs-!O_2X_W z`_fS#Eck@8FpBlvr{M*`t_;Gy!-8~NIaBkQ(D%J}53NAaQGpZ@@jX53bTpOCO-i-;V;ektWZ+x;m#$A)a z?gp3O_;CFi$htiRO+TJEAzDavj%d{5Q{MD)m!cVzmsXz7ecxSkF@RV*B(7u^M07i{ zw9R+hxSkdbDaRG$aO2#b$2rr7{lAR#!3L;JDC>M8JOS$3?$+POWa0B1h8_$5 zd3ap5#@=ve_S={J_S^5xdb3M+ON!6juK9|Cc0Zt0{`nhH59<9Bp=IlIIHA0-VeTl6 zYe>y+%Q~vTL&*ip54j^8&WZ)+l`k}%5J$9}*56F+NC0Cp^L1S;_v>vE(jt8M4@H4& z*cdO0Ew_~V1vT4cJSM~l5bnfanbD}^zuw#kN0T-xSiJZ}9*BYI)3{+JfuAG}eXFbo zs?mV%{UTVL4cH3B=Gx~px$(SGpVKtQ^YV3WR{!`y{T=d1)A1?yKcMMZU|kS zy4kKoCA5}WJ4)@LC4_eU3+sAAdHDq|^MXAr`op3@F%tJLH= z3hAoGzw5PqSLx+x(zEOJR^!v)tFyPYJYBAI>222*p)-^#g8c}c`L1rJ+d8@@+g16b zwewxwmZxcE$(mUb^y`3roni57*51n3tf_N`t8;2Ybu6`ZtW%vUU!$%i!M%?9R=)Nj zR2gP5ejR@KkZ5}`{9JwVfXKw{e*iF*$FOC6!5e0TY7Vdrjx z;cj}ZbbIKwBK<-uNhRT@M=84NP)f-%`L#7GpurF2dzGhDrlOKpR4S{YVD~B}>JtS# z51sU=8Kv~-)-J8wwdfMc+lAJibvMvh`whxSn(lN_pZjfqzT^Y+C5GZlHUeKF7yT%g zy7aOv;3#r8c>ROcj`i(7`MbaSyY?UJLYJU)76=Jk@1kv9vCy{WGl&hb2cs_3rE)%L>1mRuY?H%e{7d&76JQo;W?^R*-^LG8Bh+@a) z-gV{bi`&Th;ezf3!y1LUq&nii-#48+fQwVzwx+g9Gu)!JSCEd%3o<-}HxXf`*s5*xm0MZeF&l-+!~cwKaq3d)~7Bl&fzUp5CnC z>3iK($=>ej_Y9`*ar>qL{H7Os)6x;o)gN;C*9OMlI2eCpIe+9if20xbLfV#(=&Er> zg~56Z`4Q#muKt)8>Z)F}c5Up{sJ?3d|CpNphPGej^5fQy4gCJdI`lUN!H?R-sDEee zy=n=sa=$F$BO+Kv#dKG{?SOn+WtU4-@NIJHC1b7B^72(Q^c}L5m$%tZ^*ik$l)F1a zOSxM@2?^L;F4<#w^?K2g9#^j~mo{W~%A>>!zMlQQk^O$(VciiSQxoa- zjdc6{T3g(CcXoh>x7&Y=C84`FbXmQgyFcgh7qF??|EuixuSGKk*=rqk)3rgW6-Zwz zS4wubBwb{Qjb?b!lJ9P}|Grt%B9-H}$s1CR~zr>2agvgj(IwwWVBPkk6R* zsI+cCen_k+Mdez`6_K~#e+m3)Y!HhYA(;)I=3ZC&x6OOE{JG6)s`_G2dHHiL)l5c^ zrPL*aVJ2nV;&h z6qRmNQ7JfOrDIw0=^@Mzo`4#C6D)Hx1S| zJ8rNC=w zbXT}v_7ow;=({vz7_=Az?wfC3XvlC}<@0{gmfj91hORi(bU6vFUf;d^don$Z=y*f64%g5q>H?y1h$=OqV3m zcF{~rc_(cz|A~#vpZLi9i3-UU?y&*kK{foXb?T4F`^QF9e{7^y)hKO}Ca%6{MDVLU zS!$;Jm)|lhyiKvUbXgs>e!UGB2vOw+x742%R*FZ3brnw)LkLo0xrMsyvJQN%h*4e< zDp$lF<>mD>w{ip5)gKt({78I0Xn?KUpqG$b`9ZR;+^``CYY#&8$J6bj>tm{LslIFY zGz_X$*VP}CzVXQupXq*M!(BG~_(kRA&9wc)*4;rIBNGSRrII3>KknUOjx_Fb^Uu~l zv%?4yZyV~xFPxJH`Ix?MPn4Jy(y1~GVEQ%<_6p>N86@6PB-O4 z9$T10BbpG!!%Aw_VR;9O)GD8FK;bB2x-14)WhWP@`H@l%A4YKe&l6CG1_VqB$tR(^mC zU-_Z_R}t=1M3Q^Oc%ggcN0hN_R^tyc?PIS?o~t#>tRHLUFO^fTs7SgeAp%iU^s1%b8ljxNhzm5)Qx>LXkpH=C}n)7*(yOIDGrI1s+-5@U6f@yz-D^6Dn* z<0fU6`HTH%zoU*2nJ$|oGF0wfb=YgT!+y@+PfMG)^jOC?Z9x>oSTbsAOZ_6bZS@Ip zx9bLCT^@7V;tZ5_GjD+nnTp^_XulNW`z6?uNv;lBJ{7JaNMFCFQS4T~JNZN7D%H3_ zeFN;}D~`n6KIOqQgC}ju@9XZ#cNLa8t@UJaSK-g)UlOHHugc{0DLMMWOISv}=<7yY z)z^h(_kOFdGg9&_Uzgb}K_|v2FJGgekT|YKKgutS`?~l`_G?S|c=@pW+V7+l;X=GR5W7%{2+4;7Ws2ep2X;XdEr3NFs~cLdY_2%Rg#l`SrGxU=!s zsPEj+v9-MVH?892cQz|mSMAAcE4Rvbs!nxer^%O{Lh5G|s|*>17>#(15ftw#=vfKe2pe4IyRYHi&SBUSVlderd_it-Z2DeHOxA6Yr~0(L0c+H8pF$Lb6iicC|u= z-OKyLGUer4yLxb!TD!KC{D;2isRLY8-?mQ5so1V)b}4k}4|=NpM8-axruJ|S{O%>) zX|NPul_?F2%HqSMK7Xdu=*@pcu||^La+2hye14(}Qsl=ctlIf;mhM)N2mEnW;7S7X z{HMXuoeazQPg9G2tS@&e*M`tRW(Hh?uV89uYu%;?hR+M$V+}9gLkCxXsH#?fXu{}+ z8`8vzT3PPvxzOZFi^gB&f6Vnf9XemKT7GPVBV3w{F$Z<|TS5l1$z5Lwr0Dv7D|3BG z>a-Hl8J;(Dfq8>CS5w!MLq0`?ew8dB@GTi58_aqB7LK%~RdoY?ejt1iAXCxhoyL0- z6{=w;RI2NCX&NR=fd5Im&e4k}xy)H7p0w+nVR-pS%T~YnLiJ1Gdc|?7A^f`HkR6Kq z@jN`zw=c9S(y4ztpZ}k}Q~LM+Qq?4I9WeEYAy@E^YLTmRkh|M~Ur zF8yWiYrp&d%zpdV{>>Xt4?ov?{KeTj-~RC%|La@l&foCu&;McfKO64l-n9SWzj)?17XQP*tN+zErf&Q{PW;Q)KeGH=pZ$OT&;Q}M z*T3*@|Jk))zVe3IKm7OqcZ%x`vdN-%3?s#AQ{Np$8F zub{{BY_4VJ(Ui^eB~3Y$x;ooPiGN#L!j|I;mEMDs&-TvE&(2lm7j>8eM7{j&_TEr_ z8layRR6LwpCo(TTt+(an?`-efRAx4)e7*g2S+nKs<(+mzhsU@~Lnl7|Z_wf8KkE|Y z{AB3BO6c0&wXt)ZNnVxjqQ@RxSpL5C{`-*9pIf=_OI@}qBqaNwO@fu#0T6*@DL$8p z!w+_=e%h==OKE*eXdhgxXivRLDK6jHQUbKQRkz}qot+Yhf}8PDu)(k^IWNDXgVt#3Sady6UY-XZ&p|WW2 z509OjU0TfHcc>-&n z)4NA1<4g0Ci|2M9tISVNE-Xw6%vxef>swr$pFFv=Sh=ZpdSQHaerodMO}!6Q=E;B0 z&Aa#V@21`Z>gdvZ<(`?!(&GHs)J?s|mQGGhjz3U2H#+-NW#*ofx8FW?>-ep=?Yr}q z{gu6U+*xiJZQXo)W_oO9>~v+~!0be&MWnR7ZF6U7TW5K$t9xpDTS@v?Qy@sI>gVN8 zN$Kw34hrE$!?3+gL#l|#bqvqSu5#ykl-bIykc)ypx|(oVxf6QP6&g|adYxns^GY3C zJ2#hlx=I~VGbF%fkxw*>B#OSO&<|*JvOSu2N)va0^YJ=_((-P0lrQ3Tpbhb-gm#d$Xc9kBraj|Z_ zDE^RKd%+%FU<_Brx@5z(bak&xcCSop5=&)yP??>bnqT5SYzm15wNw2nP28RR%AfhF zB*wO`_D<VMb(L(8MKPMs zgKnM|5n(K7B6GXw1A{;_N~H~wpL*m^8Md$6-Xy>q#$c50P2xQsGaG9bd z9tFG1ek0wN)hm_m>h4@GZd7qeYy_E#($BXt%gdC3%rIeX<+DgLEpQO7OIu3oy*DbN z0-6bukCe?8+4HOF_J(rxFBuw1;B|rlk@*u0lb)WEkgO>u;5Wu=LjBZ^*hRC^5iw4oyX;EU_tf0-X+voL8YR4EcNYc zFk3KQBr^M^re@C`k+7Ydo2s<*wS>FrSKrj+*urpSZgyc(O6FWmWcN;HDrxqV=jorF z9-Ex0y_ZUd3tq#DID+|h{;Desgq1Iq7xiFj5ctnu1+A{$RB}*+9`Rv$`KH@j!p#71 zk+vI}y`?4WrraabQwL^ePEDR(njb?w=HTrgI+A~-?F%j8z9waM$6S>Qluntn39ls# zU$CCOnTdzT7RS$AQhhPA)<+15n`L`l)g`VFt;Rni$?EqR^6K|pwtOFBTh#J>{eMm8 zMqQmb{AcCQ;mztx11;g+CV4Qp!V(-K$wV z(~SM{>NV@})>j2;3GuOdoe52Bxa|r^37nn&ztwX+y zo?16`wo4=~?*$QEom*NIy#D#nwxI>bT&`~G$2zz0{wBRQ5z5+-H!?6FAeX5nNnNtt zPc=R9sn?&7Jr(Pesbfv1V&O6qtKMru_pA2qtM;gA+^^Den^Dz0qgef05L~YQ6k1)~ zB|-eRq)DFH-A_vjXUR@C?D(Xe#PjODTU)|j==V@%G0BHK(dxzF+0&;h^XYZax)_bR zjYMf*OSp*&4$N1^7Aq-Jz7Buq0>;JJ$`R{`z<%wimT>CWd`0qJM!7_O@95-oWn^(| zdhYn*_)Wb^8n5(D&5n;v^)Bj7@A%kE@5xH<*z`$Bq}infHRLaTadxJ%(0g`r@l5Z; z*tx06(`OcY7sj4Zl?#?Z%eB?0DXmv`v;^eg)Yy1sqW9!Eng7!!m@B=<+>%DRYEYc4FL^&#U+W+QRLD8ze)y*-7DnP zC5nC)O$a(zPr;0OpX?ZHj3eB$`syXbR`sX45g{@`x;h{Tw9IO=cuNl=a;@xnm3FFc zmzNcT(ElzEbyXa>B)f0}Dqe519;^r!WV))8@2`tEs)oce@L^dwA@u-$|D~BVWHVFIJ++7lj1@^0bwlmeMj~Z}psPRxH`lhdMXNvekGo zSllgtjp34(>Dr)o>Vk;e-^OgMyc74RIk1I4#DyeVVIyb@dDs`0>RO%vo z$^NpYR`+wmN|Cn}%~`!_3(*_`F{FT}YdV?g_%vYY|LWU3Sc-;MOi@b`6_iBF*l4oJ zl!q>iVsIG1#tphPgH3LW8FTk%MqBmmt>~z`RkVjHZQjigE@J4ps#An7mr5D*_Fm6m z#+{}r)yV4IM#^TNuYO(~mRr!JSs{&*RP^f_)EA6D5m7ByVEBj}U*~^y@A^)~M@jIk zqq^Oq(JjlRDsPVtx@iv0QPDMdD>g=}S6wNBwqjbaszS^Mh^ys;~io3D=%`1A>6`qGWcc87bkmW^9fmvUUi^?(uw)&gp)!$Sw zTvz=MtavQ7f71HW{DprIk1Q85V!f<>SyXD+`|^6ZeriIn$b=BU%($sVM3;VfEM23B zncA+t)Qaw;*IU$tVO2t4WsrfdzMXNkNt!Wh?`_K?KSe$NZIg7rZJ`gFfnt!pE`uXW zF<_px!Y`X$lgZmnogI=rvIbw$Y@WUNN?DV2)wj9VT%G=}zAcd>ELK`ooqkt;Pg+aE zRDH?jF{+;z4`ZmvW5#D%{iZBFiRtRgqDuAZWu=gp(D+xBQ?bqN)o%mO`Mc#!T-7em zCLq8OWAG2%-IRqQMa#S}B9D2TL)$eAXW==uBEr8H^a%TM_e$H_FnLuO^MrarR<0u= zssC5s^ag5A3W#bDEbgh75^F5LHUXooFfV1CANY|h>(T5N(|(fnSISsv*X-PWP0f|A z+|s%Z({20D%Vm`u{!Yu!ht3VE;f3;kIaO-q1!eQR*8P6!H%$k!b)&GA*4+q2nkTHy zshQEZlld?MM<%Vwx8x23W$#tb!oXC_-zMjK993 z1h6au=hkH(maWJRt)xjQNen3#RVq@q$w?ul{DguNI3_=lcyHBYi?{(LnKl0x}-|?>Kp2ku6h(5qCt9E(OO_T8NgC|)b)g*harx7U8IbA!5QMzvq;L9#|cK)LIhO46LG6xixtsS8^+ zs}rTo(!`sY<=enx$7ZK%DIbBHc|NOujS4KU{zQ{FQr+FFKaEbethw>Z!h+1n`9((g1Y>FTfDo@=2G#8D<$GYP z<$JcN*Dc#5WVb1Z#h)xhY0%zv+Ly6@{rYnB&EY5(Wy>bjJ5|!Uu0xtzLy6ju$3k%I zTSnyPC#qj+3Dy5{RDqGcxv_EmjLe=|JUce8*#GR(%!HYD>W7&Ny;$p*a0lndrYmP> z=b!35xiqN=_o?~W>E4BBW_sr<&rA{+?%j9$9k=bh_2ym$9?mQ-&Mn-vXOG_R9 zgj){G&Yhb#GyUehd-w0UdGEg4doNs0<3fBl!vb;o>^62DoG7+EQJEf_e`X#XntQWg>9~~I&)k6rs&=PjkHFHW~5X+E|Y*{z9gpT3L;@G5)1Op`*SQ_LO zb{XkE-LM@dgrBEH+2{|?kIfyOov9h%qi5!4&n_5H;nxqpq67Ri$F08y^>^=m?cv^= z+cj0zKeFk2AKLu%p(pzO`7Qr__j7;xqZcVLe%Iq!i;putk6T|fK98TAoOxWM_V_Kk zZ+(1Tk+iXeO3b-?ZsMehhCfi<@xT9_``-9e{QYh&UwU)m!0deg)YK6Lu7b@#R4ThC zri2Ck_jfx&@4a?+`EnTpmoab|1D7#y83UIwa2W%aF>o0Jmoab|1OKowAg5CZ*cL*y zhzAc9$N_CgC*S@0d*sRX@D&9N<9}aSw_mpp=~S2#y0Wx-L?^=xY470){T|h6D?^s` zU$_6?{~v1=+_S_V#ltLxPug28waZenNBim5Rg0i($HqbJ$zbzR-04Jy>#Y=r8*y~e zg6)fl2S8Z`;T!Gkg0)33YAsmEbEx)034x^a1eN^m-(h?Az zx8i4|6i-g!I5f_0;IXT zot8se2@jlqqaak+r2J5E{_LcLg(5V&MLQhE6~YVp9D0j=3gxsg=ciK734iqNwCHhB zd7#u{8gN3_`*r>ichE)rOh|7X9xjc36%Grp=uF8xEY5*!YT`_zc{@{D+3M<#$BSJU z`;m9xS3e3Z)fwsd{nE+3HU>i(?${{>MkC$u#HPlewES5}X)Juq{me}c?Ba;IG=lZz zkel7YS22G*r4;F8m(IdDDrq{Z(egLo^A4l6K2bHhv(rI*7p{wvm;bwrfy)@UjDgD- zxQv0z7`Tjq%NY0vhk<+BW%Y*eBYku1@_&~xa2W%aF>o0Jmoab|1D7#y83UIwa2W%a SF>o0Jmoab|1OI7a;Qt2$ai(7Y literal 0 HcmV?d00001 diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.xml b/tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/tracking and telemetry/packages/log4net.2.0.8/lib/net35-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
      + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
      +
      + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
      + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
      + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Format modifierleft justifyminimum widthmaximum widthcomment
      %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
      %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
      %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
      %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      +
      + + Note about caller location information.
      + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
      + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
      + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
      + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..8deb7ddf70decdeb4213acac480d78e2143e08f2 GIT binary patch literal 274944 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%0A@eH?5F@U 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

      D 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

      `f>;>6;K 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.xml b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.xml new file mode 100644 index 0000000..4a92205 --- /dev/null +++ b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-client/log4net.xml @@ -0,0 +1,32259 @@ + + + + log4net + + + +

      + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
      + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
      +
      + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
      + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
      + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Format modifierleft justifyminimum widthmaximum widthcomment
      %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
      %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
      %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
      %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      +
      + + Note about caller location information.
      + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
      + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
      + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
      + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..a4af9d6d9d5fde81b95148df0b18ae89b1e52781 GIT binary patch literal 275968 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ℑjV&P(mnfy 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.xml b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/tracking and telemetry/packages/log4net.2.0.8/lib/net40-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
      + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
      +
      + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
      + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
      + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Format modifierleft justifyminimum widthmaximum widthcomment
      %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
      %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
      %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
      %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      +
      + + Note about caller location information.
      + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
      + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
      + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
      + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..93fb476ce09698c5b42da2596d74de0cfdbd1c81 GIT binary patch literal 276480 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ǚD6b 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 literal 0 HcmV?d00001 diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.xml b/tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/tracking and telemetry/packages/log4net.2.0.8/lib/net45-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
      + The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
      +
      + Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
      + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
      + + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
      + + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Format modifierleft justifyminimum widthmaximum widthcomment
      %20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
      %-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
      %.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
      %20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      %-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
      +
      + + Note about caller location information.
      + The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
      + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
      + + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
      + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/tracking and telemetry/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll b/tracking and telemetry/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll new file mode 100644 index 0000000000000000000000000000000000000000..0a66f9b4d98143eb4020898f6eae38f3cc4ab431 GIT binary patch literal 221184 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Π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�hovn;wjc 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%0D?9U0xSJ=g%k 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

      MDDL?3;mM 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%0DZr{3#Gv)^vy3vcfsY=_@up*?>NH!0B_XN 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

      $)vJ$%V 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%0DEad&0jW_IoP6pd3`_^K_YI9T{ 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 z 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Л>@yFZ1x*yww%Da!>gnsE<_cMEU%7AZ5YYtiW%B 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

    g- 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